Thread: FireRed hack: Pokemon Jasper Version
View Single Post
Old September 11th, 2012 (10:27 PM).
shinyabsol1's Avatar
shinyabsol1 shinyabsol1 is offline
Pokemon DarkJasper!?
    Join Date: Aug 2010
    Gender: Male
    Nature: Calm
    Posts: 330
    It would be a bit difficult for me to explain exactly how it works (efficiently), but I'll try to answer your questions as best I can.

    Originally Posted by miksy91
    So how are you going to implement "being able to return," ? Will each position you can "surf on" lead to a water block in "upper world" when used Dive to return? First I got the idea that you're going to compare your current (x,y) location to some list values for being able to use Dive. That wouldn't have been a great idea at all...
    In the "upper world", the script will take the x/y coordinates of the player and warp the player accordingly to an underwater map. The same is true for the underwater map. So the coordinates of where you can dive from on one map must match up with the coordinates of where you can resurface from underwater on another map.

    Oh yeah, and dive/emerge are their own separate scripts.

    Originally Posted by miksy91
    Also, "warp-to-points" during warps can't be determined as ram addresses, right? They're just [Map Number (2 bytes)] [X location] [Y location]. So how did you manage it to load the current (x,y) value as part of the warp-script? Assembly? Or a trigger event on each position in the "upper world" map where you can use Dive? That wouldn't explain the way how using Dive in the underworld map (practically) could be implemented though.
    I have made use of one of JPAN's specials to make it work properly. Special 0x7F - get tile attribute. Hard to explain, but by checking whether or not a certain tile has water encounter potential I can make it work. I should also mention that the dive/emerge script is activated using JPAN's behavior byte hack.

    Hope that helps you understand somewhat!