News:

11 March 2016 - Forum Rules

Main Menu

Secret of Mana, Turbo - Beta 231108

Started by Queue, January 31, 2019, 06:45:12 PM

Previous topic - Next topic

hmsong

Current VWF:


%OFF% Event0CE ' $E122BC
\event \flag== 0F 00 \call 408
\event \if_flag== 11 00 \goto 0FB
\event \text_open \gold_show
'TEXT _ ^H i ! _ ^T r a v e l _ s p e c i a l : \n
'RAW AA88A0AAA7 CFA2BCC5858584C6CF90D28C929486 \n
'TEXT _ 5 0 _ ^G ^P _ p e r _ t r i p ! \n
'RAW AA85B6B883 C28792A2A4A9A99A829FBE \n
COPY E122CE 26
\event \if_flag== 1E 7F \goto 0D1
'TEXT _ _ ( _
'\event \text_opt_start \text_opt_define= 04
'TEXT ^W a t e r _ ^P a l a c e _ _
'\event \text_opt_define= 12
'TEXT ^G a i a ` s _ ^N a v e l _ )
'\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \end

%OFF% Event0CF ' $E12321
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H ow d y ! \n
TEXT _ 5 0 _ ^G ^P _ p er _t r i p ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^P o t o s
\event \text_opt_define= 09
TEXT ^G a i a ` s_ ^N av e l
\event \text_opt_define= 16
TEXT ^P an d or a
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 \end

%OFF% Event0CF*
ADR.E* Event0CF
%OFF% Event0CF^
ADR.E* XOR.SLOW

%OFF% Event0D0 ' $E12368
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^S l a p _ m e _ 5 0 _ ^G ^P _ a n d _ ^I ` l l _ s e n d _y a \n
TEXT _ f l y in g ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^K a k k ar a
\event \text_opt_define= 0B
TEXT ^I c e_ ^C ou n t r y
\event \text_opt_define= 17
TEXT ^P o t o s
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EC \goto 0ED \goto 0EE \end

%OFF% Event0D0*
ADR.E* Event0D0
%OFF% Event0D0^
ADR.E* XOR.SLOW

%OFF% Event0D1 ' $E123C0
\event \if_flag== 1E 77 \inc= 1E
TEXT _ ^W he re _t o ? \n
\event \wait_input \text_clear
TEXT _ 1 : ^W at er _ ^P al a c e \n
TEXT _ 2 : ^G a i a ` s _ ^N a v e l \n
TEXT _ 3 : ^U p p e r _ ^L a n d
\event \multispace= 10
TEXT (
\event \text_opt_start \text_opt_define= 12
TEXT 1
\event \text_opt_define= 15
TEXT 2
\event \text_opt_define= 18
TEXT 3
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \goto 0CD \end

%OFF% Event0D1*
ADR.E* Event0D1
%OFF% Event0D1^
ADR.E* XOR.SLOW

%OFF% Event0EE ' $E12993
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
'TEXT _ ^A l l _ a b o a r d _ f o r _ ^P a n d o r a ! \n
TEXT _ ^A l l _ a b o a r d _ f o r _ ^P o t o s ! _ _ \n
\event \call 0FC \cannon= 27 \call 0F7 \goto 610 \end

%OFF% Event0EE*
ADR.E* Event0EE
%OFF% Event0EE^
ADR.E* XOR.SLOW


To be honest, I didn't actually know what I was doing to correctly enable the VWF text for 0CF, 0D0, and 0EE, so I simply copied what you did for 0D1.  That didn't work out.

Also, I took your suggestion and tried out changing the coordinates for the cannon travel.  It's kinda fun to create new paths (I esp didn't like how Southtown cannon only had 1 route, so I'm working on that).  I figured I can use 0F3, since I assume that's not being used by anything, meaning I can edit/use it to add to 0E2.  I also want to add another route to Ice Country cannon (to Pandora, since that's the only close place near Ice Country), but I don't know any unused events with enough space (for all scripts).  Are there anything like that?

Btw, the description will be this:

Quote
Extra_Cannon_Travel_Routes "(Patch)-\n
Author: hmsong\n
Version: 0.0\n
\n
This makes more paths available for the Cannon Travel (some already existed in the game, but was unused).  None of them are sequence-breaking locations, but they ought to make cannon traveling a bit less tedious for anyone trying to go back to the previous areas:\n
\n
- Potos Cannon: +Gaia's Navel (retains this route even after Upper Land opens up)\n
- Upper Land Cannon: +Pandora\n
- Matango Cannon: +Potos\n
\n
This also fixes the weird spacing from the original game (ex: instead of "WaterPalace", it is now "Water Palace")."

Regarding paddings, how would I incorporate that here?  If I have 11 bytes free (ex: Event0D1 for Reborn for my Cannon Travel) and I intend to follow what you did, I should put "NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP" or "RAW 00 00 00 00 00 00 00 00 00 00 00"?

Queue

#2141
Event 0F3 is a logical choice to repurpose for this. Once you've used up all the unused cannon travel stuff (events 0EE, 0F1 and 0F3), you're out of logical choices and instead have to decide what other empty (or unused) events to claim for this patch. Near the top of the ZPS file, I have "unused events" and "empty events" documented. Looking at the empty events, 0E4 and 0F6 are available and logical choices because they're among the cannon travel events. There isn't in-place space to use them though (they're empty events, so just a single \end byte each), they have to be relocated to be used. Which is a little more complicated. If you look in a Turbo patched ROM around $C9F800 you'll be looking at relocated events. If you search the ZPS file for !_Event you'll see various patches that set up and use relocated events. Some are still in-place, just with adjustments to where they start, but generally (if they're event 000-3FF), they're located between $C9F2D7 and $C9FFFF. Would probably make sense for this patch to claim space at $C9FA00.

'@C9F2D7
@C9FA00
!_Event0E4
!_Event0F6

would go in the header and then
@OFF _Event0E4
' new event data here

%OFF% Event0E4*
ADR.E* _Event0E4
%OFF% Event0E4^
ADR.E* XOR.FAST

@OFF _Event0F6
' new event data here

%OFF% Event0F6*
ADR.E* _Event0F6
%OFF% Event0F6^
ADR.E* XOR.FAST

down in the .asm.

That would be universal, not main event script specific. So unless you wanted different text per version, it could be a single version that all 4 use (vanilla,VWF,Reloc,Reborn).




For padding, use RAW. Event scripts are data, padding bytes for data are 00 or FF.

NOP (or BRK) are padding for machine code (uhm, the stuff that looks like LDA+Y   $E170   CMP   #20   etc.).

So for your specific question, I'd use:
' padding
RAW 00 00 00 00 00 00 00 00 00 00 00





Edit: You have some non-existent DTE letter pairs breaking your events. For example, in Event0CF, it's "av" in Navel. Maybe you meant to use "ve"? That said, it seems like something in VWF's dialogue choice code is choking on that line. Are you sure you have it working for Relocalized because it should face the same limitations? A quick bit of hacking to at least make the event not fail was:
%OFF% Event0CF ' $E12321
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H ow d y ! \n
TEXT _ 5 0 _ ^G ^P _ p er _t r i p ! \n
TEXT _# 01 (
\event \text_opt_start \text_opt_define= 03
TEXT ^P o t o s
\event \text_opt_define= 09
TEXT ^G a i a ` s_ ^N a ve l
\event \text_opt_define= 16
TEXT ^P an d or a
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 '\end

But that's not enough to have it work completely.

Text on event 0D0 is too long. "ya" needs to be down a line with "flying!":
%OFF% Event0D0 ' $E12368
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^S l a p _ m e _ 5 0 _ ^G ^P _ a n d _ ^I ` l l _ s e n d '\n
TEXT _y a _ f l y in g ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^K a k k ar a
\event \text_opt_define= 0B
TEXT ^I c e_ ^C ou n t r y
\event \text_opt_define= 17
TEXT ^P o t o s
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EC \goto 0ED \goto 0EE \end


Event 0EE seemed fine.

Faty100

Hello I know this might not be the right place but I don't know where else to go.

I am looking for a Secret of Mana remake Mod one that increases the difficulty of the game.

I saw this one from Nexusmods

https://www.nexusmods.com/secretofmana/mods/1

But all it does is increase the HP of the enemies.

Does anyone know where I can get any mods or does it just simply not exist?

Sorry if this is the wrong forum.


hmsong

Oh wow, the relocating data sounds incredible -- not to mention that it'll be universal, meaning it'll be far less hassle for me.  I shall experiment.



This is what I have for relocal, and it seems to work fine for all events:


%OFF% Event0CE ' $E122D0
\event \flag== 0F 00 \call 408
\event \if_flag== 11 00 \goto 0FB
\event \text_open \gold_show
TEXT _ ^H i ! _ ^T r a v e l _ s p e c i a l : \n
TEXT _ 5 0 _ ^L u c r e _ p e r _ t r i p ! \n
\event \if_flag== 1E 7F \goto 0D1
TEXT _ _ ( _
\event \text_opt_start \text_opt_define= 04
TEXT ^W a t e r _ ^T e m p l e _ _
\event \text_opt_define= 12
TEXT ^G a i a ` s _ ^N a v e l _ )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \end

%OFF% Event0CF ' $E12338
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H o w d y ! \n
TEXT _ 5 0 _ ^L u c r e _ p e r _ t r i p ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^P o t o s
\event \text_opt_define= 09
TEXT ^G a i a ` s_ ^N a ve l
\event \text_opt_define= 16
TEXT [E]|Pandora
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 \end

%OFF% Event0D0 ' $E12382
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^S l a p _ m e _ 5 0 _ ^L u c r e _ a n d _ ^I ` l l _ s e n d \n
TEXT _ y a_ f l y in g ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^K a k k ar a
\event \text_opt_define= 0B
TEXT ^I c e_ ^C ou n t r y
\event \text_opt_define= 17
TEXT ^P o t o s
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EC \goto 0ED \goto 0EE \end

%OFF% Event0D1 ' $E123DD
\event \if_flag== 1E 77 \inc= 1E
TEXT _ ^W h e r e _ t o ? \n
\event \wait_input \text_clear
TEXT _ 1 : [E]|Water_Palace \n
TEXT _ 2 : ^G a i a ` s _ ^N a v e l \n
TEXT _ 3 : ^U p p e r _ ^L a n d
\event \multispace= 10
TEXT (
\event \text_opt_start \text_opt_define= 12
TEXT 1
\event \text_opt_define= 15
TEXT 2
\event \text_opt_define= 18
TEXT 3
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \goto 0CD \end \nop6 \nop1

%OFF% Event0EE ' $E129BB
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
'TEXT _ ^A l l _ a b o a r d _ f o r _ ^P a n d o r a ! \n
TEXT _ ^A l l _ a b o a r d _ f o r _ ^P o t o s ! _ _ \n
\event \call 0FC \cannon= 27 \call 0F7 \goto 610 \end


As for VWF event0D0, I simply copied what was already there in ZPS.  Well, at least I know the problem.  The reason I didn't even think about it was because in ZPS, if you track down [Event0D0   ' $E12368], it says, "_ ^S l a p _ m e _ 5 0 _ ^G ^P _ a n d _ ^I ` l l _ s e n d _ y a \n".  Does that mean the original VWF has error too?

I figured I got errors for VWF, because I did these wrong somewhere:

%OFF% Event0CF*
ADR.E* Event0CF
%OFF% Event0CF^
ADR.E* XOR.SLOW


Btw, I didn't know "TEXT   _# 01 (" was a thing.  If I put "_# 03 (", I'm guessing it'll be interpreted as "_ _ _ (", but would it take 4 bytes or 2 bytes?

Queue

Faty100, this website doesn't really deal much with PC games. I don't happen to know if there's anywhere out there that's focused on the SoM remake.




hmsong, _# is exactly the same as \multispace=; _# is intended to be used with TEXT and \multispace= with \event. So it's two bytes. I just tried it there to deal with the text rendering bugs VWF was having.

I'll need to check VWF but I assume it works fine normally and something, maybe the DTE characters, are making it misbehave. Likewise, I'm wondering if the Reloc version is working due to the use of [E] which isn't being used for VWF (for good reason).

You did the Event###*/^ things correctly. The issues (aside from the wrong DTE pair) seem to be due to line length. VWF (and Reloc) still uses a fair bit of vanilla text code and so some things still have 28 character limits.

I've been wondering if I should change the DTE syntax to make it more obvious. For example:
^K a k k a|r a
What do you think?

hmsong

#2145
You were right about the error -- it was the length of the line that was causing the error.  I can fix that after testing.  Thanks!  I should be able to work out the details.

Thanks for telling me about [_# 01].  I shall use that from time to time (not in this case, since [_] is only 1 byte, and [_# 01] is 2 bytes).

As for DTE, I feel like having a "|" would make it worse, because it feels so... unnatural and long (not to mention you'd have to go through the script and find all those, without changing what you were not intending).  And while it might make the DTEs more obvious to human eyes, I have a feeling that it might get confused with lowercase letter L or number 1.  Above all else, I think "|" is already in use, such as /D1 (up arrow) and /D3 (down arrow), which would make it even more confusing.




Well, I got VWF to work.  No error.  But now, the problem that you mentioned earlier is popping up (about part of select thing being cut off).


Not much I can do for this event, because I'm already hitting the maximum length of 28 characters.

But for this event:


I have a choice.  Which do you think is better?  One one hand, there's no space in the beginning but have an extra space before ")", whereas the other, the select is being cut off.

Finally, this was the thing that I mentioned earlier about VWF's flammie drum failing:

Queue

Alright, no change to DTE then.

In VWF (and Relocalized), & is available as a thin space (while _ is the full width space) to help with text positioning, and it can help fix those miscolored selection letters, but due to the line length limit, may not be possible to use in this circumstance.

For Kakkara Ice Country Potos, I think the second looks better, and the leading space, I think, more closely fits the VWF selection style.

I think I've seen that sort of error you're seeing with the Flammie Drum error text, buuut, I can't seem to get it to happen at the moment.

hmsong

I edited event 0E0 (vanilla), then I put the relocation of 0E4 (in the user &(encode)\User-Defined\.asm for all purpose).  Event0E0 works, just as expected, but once I select Pandora, nothing happened (instead of new 0E4 playing out).  Obviously, I did something wrong in relocating 0E4, but I can't tell what I did wrong.  Could you check?


%OFF% Event0E0 ' $C91E0C
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H e y ! _ 5 0 _ ^G ^P _ a n d _ y o u ` re \n
TEXT _ ou t t a_ he re ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^M at an go
\event \text_opt_define= 0B
TEXT ^K a k k ar a
\event \text_opt_define= 13
TEXT ^P an d or a
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EA \goto 0EB \goto 0E4 \end


@OFF $C67C84 ' Cannon Travel - Launch ID - 01
'RAW 6C7C 1404 '[Launch: Matango Mountains, Landing: Pure Land Ocean]
RAW B126 95D8 '[Launch: Ice Country Cannon Travel, Landing: Pandora]

'@C9F2D7
@C9FA00
!_Event0E4

@OFF _Event0E4
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
TEXT _ ^P a n d o r a ! _ ^R e a d y _ f o r _ l a u n c h ! \n
\event \call 0FC \cannon= 01 \call 0F7 \goto 613 \end

%OFF% Event0E4*
ADR.E* _Event0E4
%OFF% Event0E4^
ADR.E* XOR.FAST



Almost there... just a bit more...

Faty100

Queue - No worries thanks for the response ill try somewhere else :)

Queue

#2149
'@C9F2D7
@C9FA00
!_Event0E4

Doesn't go in the .asm virtual file. It needs to be in the header, so between:
&(encode)\User-Defined
and
&(encode)\User-Defined\Only-Vanilla

So it'd look like:
FILE <Yes-Reloc> ' spell names and descriptions
'@C9F2D7
@C9FA00
!_Event0E4
&(encode)\User-Defined\Only-Vanilla


Otherwise, it looks correct, but I haven't tested it.




For cannon routes to use, could you please use routes 0x33 and up? That keeps all cannon routes as 0x20 and up, with new ones logically added to the end of the list, and keeps 0-1F available for other projects.

hmsong

#2150
Thanks!  And I'll use ID 33 and up.  I'm done with my work.  Just need to double check it.  I'll post the final version soon.




Description:

Extra_Cannon_Travel_Routes "(Patch)-\n
Author: hmsong\n
Version: 0.0\n
\n
This makes more paths available for the Cannon Travel (some already existed in the game, but was unused).  None of them are sequence-breaking locations, but they ought to make cannon traveling a bit less tedious for anyone trying to go back to the previous areas:\n
\n
- Potos Cannon: +Gaia's Navel (retains this route even after Upper Land opens up)\n
- Upper Land Cannon: +Pandora\n
- Matango Cannon: +Potos\n
- Ice Country Cannon: +Pandora\n
- Southtown Cannon: +Ice Country\n
\n
This also fixes the weird spacing from vanilla (ex: instead of "WaterPalace", it is now "Water Palace")."


All (I think if you put this in vanilla section that you created, it'll work, but I wasn't entirely sure, so I'm putting this separately for now):

'@C9F2D7  <-- Header
@C9FA00
!_Event0E4

@OFF $C67D4C ' Cannon Travel - Launch ID - 33
'RAW B163 4070 '[Launch: Empire Northtown Peninsula, Landing: Kakkara Desert]
RAW B126 95D8 '[Launch: Ice Country Cannon Travel, Landing: Pandora]

@OFF $C67D50 ' Cannon Travel - Launch ID - 34
'RAW 5C1C 2464 '[Launch: Ocean, Landing: Kakkara Desert]
RAW E465 A70B '[Launch: Empire Southtown Cannon Travel, Landing: Todo Village]

IF [Text]
IF Reborn
@OFF _Event0E4
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
TEXT ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
\event \wait_input \text_clear
\event \call 0FC \cannon= 33 \call 0F7 \goto 613 \end
IFNOT Reborn
@OFF _Event0E4
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
TEXT _ ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
\event \call 0FC \cannon= 33 \call 0F7 \goto 613 \end
ENDIF x3

%OFF% Event0E4*
ADR.E* _Event0E4
%OFF% Event0E4^
ADR.E* XOR.FAST


As you can see, the relocated Event0E4 is different for Reborn (vanilla, VWF, and Relocal are the same though).  I'm not sure if this is how it's supposed to be done, or the Reborn specific should go somewhere else.  I tried putting @OFF _Event0E4 in the Reborn section, but instead of overwriting the original version, it continued after the original version, hence why I resorted to IF.  If you have a better idea, please feel free to correct it.

And the rest:

Damn, the message limit.  I'll post the content once someone posts something.

Queue

Since the only difference between Reborn and the others is no leading space, you could do it this way:
@OFF _Event0E4
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
IFNOT [Text]
TEXT _
ENDIF x1
IF [Text]
IFNOT Reborn
TEXT _
ENDIF x1
TEXT ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
\event \wait_input \text_clear
\event \call 0FC \cannon= 33 \call 0F7 \goto 613 \end

Then the leading space is only there if the [Text] section is Off (vanilla), or if [Text] is On, if Reborn is Off (vanilla, VWF, Reloc). Still a little messy, but not too bad.

hmsong

#2152
In addition to not having leading space, Reborn cannon guy requires you to press B before event0FC plays out.  The other scripts don't.  I'd like to honor that.  Still, I completely forgot about IFNOT [TEXT].  Whoops.  Anyways, this is what I'm thinking, but I feel like this can be reduced (very messy).


@OFF _Event0E4
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
IFNOT [Text]
TEXT _ ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
ENDIF x1     ` <<--- is this part necessary?
IF [Text]
IFNOT Reborn
TEXT _ ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
IF Reborn
TEXT ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
\event \wait_input \text_clear
ENDIF x3
\event \call 0FC \cannon= 33 \call 0F7 \goto 613 \end


Anyways, this is the main part:


'vanilla

%OFF% Event0CE ' $C91ADC
\event \flag== 0F 00 \call 408
\event \if_flag== 11 00 \goto 0FB
\event \text_open \gold_show
TEXT _ ^H i ! _ ^T r a v e l _ s p e c i a l : \n
TEXT _ 5 0 _ ^G ^P _ p e r _ t r i p ! \n
\event \if_flag== 1E 7F \goto 0D1
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^W a t er _ ^P a l a c e
\event \text_opt_define= 0F
TEXT ^G a i a ` s _ ^N a v e l )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \end

%OFF% Event0CF ' $C91B3A
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^Y o ! \n
TEXT _ 5 0 _ ^G ^P _ p er _t r i p ! \n
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^P o t o s
\event \text_opt_define= 07
TEXT ^G a i a ` s_ ^N a ve l
\event \text_opt_define= 14
TEXT ^P an d or a
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 \end

%OFF% Event0D0 ' $C91B7D
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^S l a p _ m e _ 5 0 _ ^G ^P _ a n d \n
TEXT _ ^I ` l l _ s en d _y a_ f l y in g ! \n
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^K a k k ar a
\event \text_opt_define= 09
TEXT ^I c e_ ^C ou n t r y
\event \text_opt_define= 15
TEXT ^P o t o s
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EC \goto 0ED \goto 0EE \end

%OFF% Event0D1 ' $C91BD1
\event \if_flag== 1E 77 \inc= 1E
TEXT _^W he re _ t o ? \n
\event \wait_input \text_clear
TEXT _ 1 :
'TEXT [E]|Water_Palace
\event \call 60A
TEXT \n
TEXT _ 2 : ^G a i a ` s _ ^N a v e l \n
TEXT _ 3 : ^U p p e r _ ^L a n d
\event \multispace= 10
TEXT (
\event \text_opt_start \text_opt_define= 12
TEXT 1
\event \text_opt_define= 15
TEXT 2
\event \text_opt_define= 18
TEXT 3
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \goto 0CD \end

%OFF% Event0E0 ' $C91E0C
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H e y ! _ 5 0 _ ^G ^P _ a n d _ y o u ` re \n
TEXT _ ou t t a_ he re ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^M at an go
\event \text_opt_define= 0B
TEXT ^K a k k ar a
\event \text_opt_define= 13
TEXT ^P an d or a
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EA \goto 0EB \goto 0E4 \end

%OFF% Event0E2 ' $C91EAD
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H e l l o o ! _ 5 0 _ ^G ^P ` l l _ g e t _ y a \n
TEXT _ t o _ r i d e _ t h e _ s k y ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^K a k k a r a
\event \text_opt_define= 0C
TEXT ^I c e _ ^C ou n t r y
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0E6 \goto 0F3 \end

%OFF% Event0EE ' $C9216B
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
'TEXT _ ^A l l _ a b o a r d _ f o r _ ^P a n d o r a ! \n
TEXT _ ^A l l _ a b o a r d _ f o r _ ^P o t o s ! _ _ \n
\event \call 0FC \cannon= 27 \call 0F7 \goto 610 \end

%OFF% Event0F3 ' $C9225A
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
TEXT _ ^I c e _ ^C o u n t r y ? _ ^O k a y ! _ ^S e e _ y a ! \n
\event \call 0FC \cannon= 34 \call 0F7 \goto 61D \end



'VWF

%OFF% Event0CE ' $E122BC
\event \flag== 0F 00 \call 408
\event \if_flag== 11 00 \goto 0FB
\event \text_open \gold_show
'TEXT _ ^H i ! _ ^T r a v e l _ s p e c i a l : \n
'RAW AA88A0AAA7 CFA2BCC5858584C6CF90D28C929486 \n
'TEXT _ 5 0 _ ^G ^P _ p e r _ t r i p ! \n
'RAW AA85B6B883 C28792A2A4A9A99A829FBE \n
COPY E122CE 26
\event \if_flag== 1E 7F \goto 0D1
'TEXT _ _ ( _
'\event \text_opt_start \text_opt_define= 04
'TEXT ^W a t e r _ ^P a l a c e _ _
'\event \text_opt_define= 12
'TEXT ^G a i a ` s _ ^N a v e l _ )
'\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \end

%OFF% Event0CF ' $E12321
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H o w d y ! \n
TEXT _ 5 0 _ ^G ^P _ p e r _t r i p ! \n
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^P o t o s
\event \text_opt_define= 07
TEXT ^G a i a ` s_ ^N a ve l
\event \text_opt_define= 14
TEXT ^P an d or a
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 \end

%OFF% Event0CF*
ADR.E* Event0CF
%OFF% Event0CF^
ADR.E* XOR.SLOW

%OFF% Event0D0 ' $E12368
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^S l a p _ m e _ 5 0 _ ^G ^P _ a n d _ ^I ` l l \n
TEXT _ s e n d _ y a _ f l y in g ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 02
TEXT ^K a k k ar a
\event \text_opt_define= 0A
TEXT ^I c e_ ^C ou n t r y
\event \text_opt_define= 16
TEXT ^P o t o s
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EC \goto 0ED \goto 0EE \end

%OFF% Event0D0*
ADR.E* Event0D0
%OFF% Event0D0^
ADR.E* XOR.SLOW

%OFF% Event0D1 ' $E123C0
\event \if_flag== 1E 77 \inc= 1E
TEXT _ ^W he re _t o ? \n
\event \wait_input \text_clear
TEXT _ 1 : ^W at er _ ^P al a c e \n
TEXT _ 2 : ^G a i a ` s _ ^N a v e l \n
TEXT _ 3 : ^U p p e r _ ^L a n d
\event \multispace= 10
TEXT (
\event \text_opt_start \text_opt_define= 12
TEXT 1
\event \text_opt_define= 15
TEXT 2
\event \text_opt_define= 18
TEXT 3
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \goto 0CD \end

%OFF% Event0D1*
ADR.E* Event0D1
%OFF% Event0D1^
ADR.E* XOR.SLOW

%OFF% Event0E0 ' $E12616
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H e y ! _ 5 0 _ ^G ^P _ a n d _ y o u ` r e \n
TEXT _ o u t t a _ h e re ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^M at an go
\event \text_opt_define= 0B
TEXT ^K a k k ar a
\event \text_opt_define= 13
TEXT ^P an d or a
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EA \goto 0EB \goto 0E4 \end

%OFF% Event0E0*
ADR.E* Event0E0
%OFF% Event0E0^
ADR.E* XOR.SLOW

%OFF% Event0E2 ' $E126D6
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H e l l o o ! _ 5 0 _ ^G ^P ` l l _ g e t _ y a _ t o \n
TEXT _ r i d e _ t h e _ s k y ! \n
TEXT _# 02 (
\event \text_opt_start \text_opt_define= 04
TEXT ^K a k k a r a
\event \text_opt_define= 0D
TEXT ^I c e _ ^C o u n t r y
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0E6 \goto 0F3 \end
RAW 00

%OFF% Event0E2*
ADR.E* Event0E2
%OFF% Event0E2^
ADR.E* XOR.SLOW

%OFF% Event0EE ' $E12993
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
'TEXT _ ^A l l _ a b o a r d _ f o r _ ^P a n d o r a ! \n
TEXT _ ^A l l _ a b o a r d _ f o r _ ^P o t o s ! _ _ \n
\event \call 0FC \cannon= 27 \call 0F7 \goto 610 \end

%OFF% Event0EE*
ADR.E* Event0EE
%OFF% Event0EE^
ADR.E* XOR.SLOW

%OFF% Event0F3 ' $E12A82
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
'TEXT _ ^I c e _ ^C o u n t r y ? _ ^O k a y ! _ ^S e e _ y a ! \n
COPY E12A90 1C
\event \call 0FC \cannon= 34 \call 0F7 \goto 61D \end



'Relocalized

%OFF% Event0CE ' $E122D0
\event \flag== 0F 00 \call 408
\event \if_flag== 11 00 \goto 0FB
\event \text_open \gold_show
TEXT _ ^H i ! _ ^T r a v e l _ s p e c i a l : \n
TEXT _ 5 0 _ ^L u c r e _ p e r _ t r i p ! \n
\event \if_flag== 1E 7F \goto 0D1
TEXT _ _ ( _
\event \text_opt_start \text_opt_define= 04
TEXT ^W a t e r _ ^T e m p l e _ _
\event \text_opt_define= 12
TEXT ^G a i a ` s _ ^N a v e l _ )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \end

%OFF% Event0CF ' $E12338
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H o w d y ! \n
TEXT _ 5 0 _ ^L u c r e _ p er _t r i p ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^P o t o s
\event \text_opt_define= 09
TEXT & ^G a i a ` s_ ^N a ve l
\event \text_opt_define= 17
TEXT & [E]|Pandora
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 \end

%OFF% Event0D0 ' $E12382
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^S l a p _ m e _ 5 0 _ ^L u c r e _ a n d _ ^I ` l l _ s en d \n
TEXT _y a_ f l y in g ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^K a k k ar a
\event \text_opt_define= 0B
TEXT & ^I c e_ ^C ou n t r y
\event \text_opt_define= 18
TEXT & ^P o t o s
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EC \goto 0ED \goto 0EE \end

%OFF% Event0D1 ' $E123DD
\event \if_flag== 1E 77 \inc= 1E
TEXT _ ^W h e r e _ t o ? \n
\event \wait_input \text_clear
TEXT _ 1 : [E]|Water_Palace \n
TEXT _ 2 : ^G a i a ` s _ ^N a v e l \n
TEXT _ 3 : ^U p p e r _ ^L a n d
\event \multispace= 10
TEXT (
\event \text_opt_start \text_opt_define= 12
TEXT 1
\event \text_opt_define= 15
TEXT 2
\event \text_opt_define= 18
TEXT 3
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \goto 0CD \end
RAW 00 00 00 00 00 00 00

%OFF% Event0E0 ' $E12635
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H e y ! _ 5 0 _ ^L u c r e _ a n d _ y o u ` r e _ o u t t a \n
TEXT _ h e re ! \n
TEXT _ (
\event \text_opt_start \text_opt_define= 03
TEXT ^M at an go
\event \text_opt_define= 0C
TEXT ^K a k k ar a
\event \text_opt_define= 15
TEXT ^P an d or a
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0EA \goto 0EB \goto 0E4 \end

%OFF% Event0E2 ' $E126FB
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT _ ^H e l l o o ! _ 5 0 _ ^L u c r e ` l l _ g e t _ y a _ t o \n
TEXT _ r i d e _ t h e _ s k y ! \n
TEXT _# 02 (
\event \text_opt_start \text_opt_define= 04
TEXT ^K a k k a r a
\event \text_opt_define= 0D
TEXT ^I c e _ ^C o u n t r y
TEXT _ )
\event \text_opt_end== \goto 0FF \goto 0E6 \goto 0F3 \end
RAW 00

%OFF% Event0EE ' $E129BB
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
'TEXT _ ^A l l _ a b o a r d _ f o r _ ^P a n d o r a ! \n
TEXT _ ^A l l _ a b o a r d _ f o r _ ^P o t o s ! _ _ \n
\event \call 0FC \cannon= 27 \call 0F7 \goto 610 \end

%OFF% Event0F3 ' $E12AAA
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
TEXT _ ^I c e _ ^C o u n t r y ? _ ^O k a y ! _ ^S e e _ y a ! \n
\event \call 0FC \cannon= 34 \call 0F7 \goto 61D \end



'Reborn

%OFF% Event0CE ' $E126B7 Row: 319
\event \flag== 0F 00 \call 408
\event \if_flag== 11 00 \goto 0FB
\event \text_open \gold_show
TEXT ^G u f u f u , _ c o m e _ o n ! \n
TEXT 5 0 _ ^G ^P _ p e r _ t r i p ! \n
\event \if_flag== 1E 7F \goto 0D1
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^W a t e r _ ^P a l a c e
\event \text_opt_define= 0E
TEXT ^G a i a ` s _ ^N a v e l
TEXT )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \end

%OFF% Event0CF ' $E12711 Row: 326
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT ^G u h o h o , _ w e e e e l c o o o o o me ! \n^
TEXT ^W he re _y ou _ go in ` ? _ ^A n y w he re ` s \n^
TEXT 5 0 _ ^G ^P ! \n
\event \wait_input \text_clear
TEXT 1 : [E]|Potos_Village \n
TEXT 2 : ^G a i a ` s_ ^N a ve l \n
TEXT 3 : ^P an d or a
\event \multispace= 15
TEXT (
\event \text_opt_start \text_opt_define= 16
TEXT 1
\event \text_opt_define= 18
TEXT 2
\event \text_opt_define= 1A
TEXT 3
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 \end

%OFF% Event0D0 ' $E1277F Row: 332
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT ^G us hi s hi ,_ w e l c om e_ t o_ y a ! \n^
TEXT ^S l a p _m e_ 5 0 _ ^G ^P _a n d_ ^I ` ll _s en d \n^
TEXT y a_ f l y in g ! \n
\event \wait_input \text_clear
TEXT 1 : ^K a k k ar a \n
TEXT 2 : ^I c e_ ^C ou n t r y \n
TEXT 3 : [E]|Potos_Village
\event \multispace= 15
TEXT (
\event \text_opt_start \text_opt_define= 16
TEXT 1
\event \text_opt_define= 18
TEXT 2
\event \text_opt_define= 1A
TEXT 3
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EC \goto 0ED \goto 0EE \end

%OFF% Event0D1 ' $E127EB Row: 338
\event \if_flag== 1E 77 \inc= 1E
TEXT ^W h e r e _ y a _ h e a d e d ? \n
\event \wait_input \text_clear
TEXT 1 : ^W a t e r _ ^P a l a c e \n
TEXT 2 : ^G a i a ` s _ ^N a v e l \n
TEXT 3 : ^U p p e r _ ^L a n d
\event \multispace= 15
TEXT (
\event \text_opt_start \text_opt_define= 16
TEXT 1
\event \text_opt_define= 18
TEXT 2
\event \text_opt_define= 1A
TEXT 3
TEXT )
\event \text_opt_end== \goto 0FF \goto 0FD \goto 0FE \goto 0CD \end
RAW 00 00 00 00 00 00 00 00 00 00 00

%OFF% Event0E0 ' $E12B64 Row: 379
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT ^G u p i e p i e , _ ^Y ^E ^A ^H ! ! ! \n
TEXT 5 0 _ ^G ^P _ a n d _ y o u ` re _ ou t t a_ he re ! \n
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^M at an go
\event \text_opt_define= 09
TEXT ^K a k k ar a
\event \text_opt_define= 11
TEXT ^P an d or a
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EA \goto 0EB \goto 0E4 \end

%OFF% Event0E2 ' $E12C29 Row: 392
\event \flag== 0F 00 \call 408 \text_open \gold_show
TEXT ^G u r u r u ! _ ^H e l l o o o o ! \n^
\event \wait_input \text_clear
TEXT 5 0 _ ^G ^P ` l l _ g e t _ y a _ t o _ r i d e _ t h e \n^
TEXT s k y ! \n
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^K a k k a r a
\event \text_opt_define= 09
TEXT ^I c e _ ^C o u n t r y
TEXT )
\event \text_opt_end== \goto 0FF \goto 0E6 \goto 0F3 \end
RAW 00 00 00 00 00 00 00

%OFF% Event0EE ' $E12F99 Row: 433
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
TEXT ^T h e _ l i n e _ t o _ [E]|Potos_Village , \n^
TEXT d e p a r t i n g _ n o w ! _ _ _ _ _ \n
\event \wait_input \text_clear
\event \call 0FC \cannon= 27 \call 0F7 \goto 610 \end

%OFF% Event0F3 ' $E130AA Row: 445
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
TEXT ^I c e _ ^C o u n t r y ! _ ^H a v e _ a _ g r e a t \n^
TEXT t i m e ! \n
\event \wait_input \text_clear
\event \call 0FC \cannon= 34 \call 0F7 \goto 61D \end


If you notice any error, please let me know.  I tested it as much as I can, and I found no error.

Queue

#2153
Where you have:
ENDIF x1     ` <<--- is this part necessary?
I think I need to explain more clearly how the IF's work.

When the ZPS parser reads an IF (or IFNOT), if evaluates it, and if it's FALSE, then it ignores all subsequent lines until it finds an ENDIF.

So, let's see if I can make a simplified example:
IF TRUE
TEXT 1
IF FALSE
TEXT 2
ENDIF x2

The result would be 1, because IF TRUE is TRUE so TEXT 1 is used, then it hits IF FALSE which is FALSE so TEXT 2 is skipped, and ENDIF ends both conditionals.

IF FALSE
TEXT 1
IF TRUE
TEXT 2
ENDIF x2

The result would be nothing. IF TRUE is inside of the IF FALSE, so once the parser reads IF FALSE, everything will be ignored, including the IF TRUE, until it reaches the ENDIF.

To make it work as expected, you'd need:
IF FALSE
TEXT 1
ENDIF x1
IF TRUE
TEXT 2
ENDIF x2

Then the result would be 2, because the IF FALSE would have ended at the ENDIF one line before the IF TRUE.

Sometimes pretty complex conditionals can be nested, with special care taken for their ordering and such. It makes them a bit more fragile (i.e. difficult to change without breaking them), but reduces the amount of clutter by needing fewer ENDIF's.

If you try your current event 0E4 with Reborn, it goes straight from destination selection to "Slide into the cannon for me!" because your conditionals result in no text (or \wait_input) for Reborn.

IF [Text]
IFNOT Reborn
TEXT _ ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
IF Reborn
TEXT ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
\event \wait_input \text_clear
ENDIF x3

With Reborn On, is parsed as:
IF TRUE
IF FALSE
TEXT
IF TRUE
TEXT
\event
ENDIF x3

IFNOT Reborn = IFNOT TRUE = IF FALSE. The TEXT and \event you want are within an IF FALSE, so they're ignored (the second IF TRUE is ignored, because the IF FALSE hasn't reached an ENDIF yet).

Here's what I've changed it to to make it work:
@OFF _Event0E4
\event \gold_sub== 3200 \gold_refresh \if_flag== 0F 1F \goto 0F8 \call 797 \call 410 \text_open
IFNOT [Text]
TEXT _# 01
ENDIF x1
IF [Text]
IFNOT Reborn
TEXT _# 01
ENDIF x2
TEXT ^P a n d o r a ! _ ^R e a d y _ t o _ l a u n c h ! \n
IF [Text]
IF Reborn
\event \call 5FE
ENDIF x2
\event \call 0FC \cannon= 33 \call 0F7 \goto 613 \end

You'll notice the odd choice of _# 01 and \call 5FE (event 5FE is \wait_input \text_clear \ret). Both of those are 2 bytes, so that the event always takes the same number of bytes total regardless of if it's for Reborn or not. This makes long term space management easier if more events someday need to be packed in.




Your event 0E2 text is cute, though worded a little unnaturally:
50 GP'll get ya to ride the sky!
Instead of "get ya to", "let ya", as in:
50 GP'll let ya ride the sky!
...comes to mind as a way to construct that sentence. Obviously there are other ways to convey that as well. If you really wanted to maintain more of the original sentence, maybe something like descriptors of the destination could work, like:
50 GP'll get ya to sand or snow!
Up to you though, just giving feedback.

Since the only thing you're changing in event 0F3 is the cannon route, I hooked up an Event0F3.Extra_Cannon_Travel_Routes label. This means the following is all that's needed:
%OFF% Event0F3.Extra_Cannon_Travel_Routes
\event \cannon= 34


The only other change I made while hooking everything up was adding a ' padding comment before each group of padding bytes; I'd prefer if padding bytes were searchable in the ZPS file (by search for "' padding").

Just a little more stuff to do before I upload a release that includes this. Should be done today, but may be jinxing myself by typing that.




Edit: Got Quality_of_Life\No_Early_Navel implemented.

One other small tweak to your thing for vanilla event 0CF:
%OFF% Event0CF ' $C91B3A
\event \flag== 0F 00 \call 408 \text_open \gold_show
IFNOT Proper-caser
TEXT _ ^Y o ! \n
ENDIF
IF Proper-caser
TEXT _ ^H o w d y ! \n
ENDIF
TEXT _ 5 0 _ ^G ^P _ p er _t r i p ! \n
TEXT (
\event \text_opt_start \text_opt_define= 01
TEXT ^P o t o s
\event \text_opt_define= 07
TEXT ^G a i a ` s_ ^N a ve l
\event \text_opt_define= 14
IFNOT Proper-caser
TEXT ^P an d or a
ENDIF
IF Proper-caser
TEXT [E]|Pandora
ENDIF
TEXT )
\event \text_opt_end== \goto 0FF \goto 0EF \goto 0F0 \goto 0F1 \end

That seem okay? If Proper-caser is On, avoids changing the greeting.

And a request, can I remove the offset and row comments from the Reborn versions?
%OFF% Event0CE ' $E126B7 Row: 319
            ^^^^^^^^^^^^^^^^^^ this part

They change with (nearly) every version of Reborn, and I want to avoid erroneous comments needing to be cleaned up later (or worse, being left and causing confusion). The whole point of %OFF% Event### is that you don't need to know the offsets. Vanilla, VWF_Edition and Relocalized are "stable" in that they're unlikely to ever change, but Reborn there's no guarantee. I know you kept the comments for convenience, but they risk being wrong, and erroneous notes lead to mistakes later.

hmsong

Wow, what you did with Event0E4 looks so beautiful -- I love seeing wise management of space (it's like it's a form of art).  Yes, please do that.  And thank you for explaining the details regarding IF function.

And "50 GP'll let ya ride the sky!" sounds way better.  Yes, please do that.  There are 3 bytes less than the original though, so gotta add 3 bytes of padding (I like to keep track of how many bytes are left).  Although I will admit that getting rid of some DTEs in what I wrote is what I prefer (which DTE and how many DTE depends, or adding padding depends on which script is used).  And it may change the script's spacing ("ride" may go in the previous line).

Yeah, the shortcut for 0F3 sounds great.  It's unnecessary to have to write so much when you can just cut the whole thing down.  Thank you.

Padding comment sounds great.  It'll let me see that too, which is exactly what I want.

Regarding 0CF, holy crap!  I can't believe I didn't see that was also an option!  Yes, please do that!  Same bytes!  Very beautiful.  Having said that, do you not need "IF [TEXT]" before IF/IFNOT Proper-caser?  This is for vanilla, so I feel like "IFNOT [TEXT]" is also necessary.

And yes, please get rid of the offset and row comments.  I totally forgot about that (due to me simply using copy/paste).  Heh.

Thank you so much.  I look forward to your next version (and No_Early_Navel).  Did you happen to take a look about the BGM change (or lack of) when you land with Flammie on Ice Country/Empire cannon?

Queue

Version 2021-06-24:
https://www.sendspace.com/file/6c5seu

Changes:
- standardized naming for "Upper Land" throughout the ZPS file (previously there was also Upperland and upperlands, etc.)
- added hmsong's Quality_of_Life\Extra_Cannon_Travel_Routes
- implemented Quality_of_Life\No_Early_Navel (Off by default)
- rewrote some rain of arrows code (in preparation for upcoming collision changes)
- added vanilla event 0E3 to Text\Event_Fixes

Technical Changes:
- overhauled debugging number display (uses UI layer instead of damage numbers)
- disabled an old zhaDe Pandora NPC test tied to debugging mode
- documented European SoM use of event 6D6
- documented cannon travel routes




Okay, changed the wording for event 0E2, vanilla I undid 1 DTE character so it had 2 leftover padding bytes, the other three just got 3 more padding bytes. I didn't mess with spacing (words per line) other than to make sure it didn't overflow the line. VWF can have picky rules on more than 28 characters on a line (I think only when using decoded text?) that may or may not play well with these text changes.

Oh yeah, you're right on event 0CF and "IF [Text]", good catch. I totally forgot; fixed that.

I checked and know what I need to do for the music on those two maps, but ran out of time to implement it. To fix it, I'll actually need to make a small change to EVERY cannon travel launch map (those maps need auto events added, and doing so is tricky), and make it compatible with Tidy_Map_Pieces, and then test to verify the changes.

I sorta rushed the release today. I had done some testing earlier, but I did some last minute changes that I didn't test thoroughly sooooo, here's hoping no bugs.

hmsong

#2156
Oo, nice.  An update.  I shall play that over the weekend.  I can't exactly play games in the workplace, although I can write codes, as nobody would understand me doing all these weird code thing over Notepad.  Heh.

Once again, thanks for all your help.  That was fun little project (although I still struggled every step).

Quote from: Queue on June 24, 2021, 11:06:56 PM
I checked and know what I need to do for the music on those two maps, but ran out of time to implement it. To fix it, I'll actually need to make a small change to EVERY cannon travel launch map (those maps need auto events added, and doing so is tricky), and make it compatible with Tidy_Map_Pieces, and then test to verify the changes.

Some cannon maps (like Upperland and Matango) plays the BGM just fine after landing from Flammie, so I figured it would be something very minor to fix.  Guess I was wrong.  Looking forward to it.




I'm not sure if you intended this, but for No_Early_Navel, the cannon guy won't let you travel to gaia's navel even after the Water Palace (0CE).  I even did the Pandora scene (whether you recruit Girl or not), and yet it still doesn't enable the cannon guy's route to Gaia's Navel.  I'm not sure what's going on, but shouldn't the cannon guy enable the Gaia's Navel route?

My guess is that it has to do with Extra_Cannon_Travel_Routes's 0CE doesn't have "%OFF% Event0CE.No_Early_Navel"?

Queue

It's not that, as long as No_Early_Navel is applied after Extra_Cannon_Travel_Routes in the patching order (which it is), then Extra_Cannon_Travel_Routes doesn't need to explicitly account for No_Early_Navel.

The problem surely lies with the European SoM's approach to the fix, which is what I copied. A quick glance makes me think the route won't open until... hm, maybe not until after defeating Spikey Tiger. Well, that's stupid.

Would you be willing to try changing No_Early_Navel to:
%OFF% Event0CE.No_Early_Navel
\event \if_flag== 11 0A '\goto 0FB

...and see how that feels? It should enable the cannon route after you finish the long branching dialogue with Luka. Or is that still too early?




The problem with the music on those two cannon travel maps is they completely lack auto events that would trigger the music. Enabling auto events requires making space in map event data, and since all cannon travel maps share map pieces, they all need to be adjusted to deal with necessary changes.

hmsong

Quote from: Queue on June 25, 2021, 03:44:27 AM
It's not that, as long as No_Early_Navel is applied after Extra_Cannon_Travel_Routes in the patching order (which it is), then Extra_Cannon_Travel_Routes doesn't need to explicitly account for No_Early_Navel.

The problem surely lies with the European SoM's approach to the fix, which is what I copied. A quick glance makes me think the route won't open until... hm, maybe not until after defeating Spikey Tiger. Well, that's stupid.

Would you be willing to try changing No_Early_Navel to:
%OFF% Event0CE.No_Early_Navel
\event \if_flag== 11 0A '\goto 0FB

...and see how that feels? It should enable the cannon route after you finish the long branching dialogue with Luka. Or is that still too early?

I tried it.  Perfect.  That's not too early -- in fact, that's exactly where I want it.  I thought you'd go with 12 00 (that was your suggestion), since it's tied with the Pandora guard (who is changed somewhere during Luka's conversation), and I thought it was perfect.  But this results in the same thing, which is what I want.  Thanks!

Quote from: Queue on June 25, 2021, 03:44:27 AM
The problem with the music on those two cannon travel maps is they completely lack auto events that would trigger the music. Enabling auto events requires making space in map event data, and since all cannon travel maps share map pieces, they all need to be adjusted to deal with necessary changes.

I see.  I can see why that would be a problem.  Is that what happened with the Ice Country Paradise BGM too? (after creating Flammie landing point)

Queue

#2159
Version 2021-06-25:
https://www.sendspace.com/file/4rfpf6

Changes:
- changed Quality_of_Life\No_Early_Navel behavior so that the cannon route from Potos to Gaia's Navel becomes available after speaking with Luka (instead of after the Witch's Castle)
- implemented Bug_Fixes\Cannon_Music to resolve lack of music change when landing (from flight) on the Ice Country and Southtown cannons

Cannon_Music changes what should be an unused tile (0xBF) on a tileset (2) used by a massive number of maps (133, though the vast majority aren't actually functional maps). It shouldn't cause problems, and would probably be hard to notice even if it did, but it's practically impossible to determine if the change causes a problem; it just needs playtesting to see if anyone encounters an issue. It's originally an "invisible solid tile" that would be used to affect where you can walk, while a different tile on the other layer would provide the art, but there's a different "invisible solid tile" (0xBA) in that same tileset that seems to be what's actually used for that purpose anywhere I checked.

hmsong, be sure to look at Cannon_Music in the ZPS file and see how technical of changes it required. Just below it in the ZPS file is Tropicy_Music, so you can compare and see how simple that was.




Original post:

Gah, you're right, flag 11 becomes 0B and flag 12 becomes 01 at exactly the same time. I'll just go with \if_flag== 12 00 then as it's easier to keep track of.

The icy Tropics has an auto event, but it's empty (event 635). I just redirected it to use event 724 (which plays the correct music for the area).

Most cannon travel maps lack an auto event, so I can't just edit or redirect it. I have to add auto events to those maps, but there's not room in their event arrays, so I have to pull various tricks to make room (and said tricks are extra tricky since the cannon travel maps share resources).

Edit: Post updated with new release.