Difference between revisions of "0018e660 - 0018e6b4"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  Used in [[Weather Elemental effects]] routine.  Credit goes to Dokurider for finding it for me.
+
  Used in [[Weather Elemental effects]] routine.  Credit goes to Dokurider for finding it for me. Credit to Talcall for finding the snowy weather flag.
 
+
  0018e660: 27bdffe8 addiu r29,r29,0xffe8
+
No Parameters
  0018e664: afbf0010 sw r31,0x0010(r29)
+
  0018e668: 0c04ed64 jal 0x0013b590 [[Get Script Variable]] 0x23 (weather)
+
Returns r2 = 0x00 if 0x800b6698 has flag 0x02 ON (ignore weather ? Inside of building ?)
  0018e66c: 34040023 ori r4,r0,0x0023
+
        r2 = Weather value
  0018e670: 3c04800b lui r4,0x800b
+
        r2 = Weather value + 0x03 if it snows (0x800b6698 has flag 0x01 ON)
  0018e674: 8c846698 lw r4,0x6698(r4) weather palette mods
+
  0018e678: 00401821 addu r3,r2,r0 r3 = weather
+
See [[Weather]] - See [[#Notes|Notes]]
  0018e67c: 30820002 andi r2,r4,0x0002 r2 = 0x2 palette mod bitflag
+
---------------------------------------------------------------------------------------------
  0018e680: 14400009 bne r2,r0,0x0018e6a8 branch if 0x2 bitflag is true (ignore weather? (useful for inside of buildings, or specific events that require dry weather?))
+
  0018e660: 27bdffe8 addiu r29,r29,-0x0018   
  0018e684: 00001021 addu r2,r0,r0 return 0
+
  0018e664: afbf0010 sw r31,0x0010(r29)      
  0018e688: 28620002 slti r2,r3,0x0002 r2 = true if weather < 2 (not storming, snowing, or raining, among other things?)
+
  0018e668: 0c04ed64 jal 0x0013b590           |{{f/jal|Get Script Variable |Get Script Variable }} Returns r2 = Weather value
  0018e68c: 14400006 bne r2,r0,0x0018e6a8 branch if weather < 2
+
  0018e66c: 34040023 ori r4,r0,0x0023         |{{f/std|<nowiki>r4 = 0x23 (Variable Weather)</nowiki>}}
  0018e690: 00601021 addu r2,r3,r0 return 0
+
  0018e670: 3c04800b lui r4,0x800b           |
  0018e694: 30820001 andi r2,r4,0x0001 r2 = 0x1 palette mod bitflag
+
  0018e674: 8c846698 lw r4,0x6698(r4)         |{{f/adr|<nowiki>r4 = weather palette mods</nowiki>}} {{f/std| 0x800b6698 / 800b6698}}
  0018e698: 10400003 beq r2,r0,0x0018e6a8 branch if 0x1 bitflag is false (ignore time of day? (probably useful for events or inside buildings))
+
  0018e678: 00401821 addu r3,r2,r0           |{{f/std|<nowiki>r3 = weather value</nowiki>}}
  0018e69c: 00601021 addu r2,r3,r0 r2 = weather
+
  0018e67c: 30820002 andi r2,r4,0x0002       |{{f/std|<nowiki>r2 <> 0x00 if Palette Mod = 0x2 palette mod bitflag</nowiki>}}
  0018e6a0: 24630003 addiu r3,r3,0x0003 add 3 to weather
+
  0018e680: 14400009 bne r2,r0,0x0018e6a8     {{f/Cond|If Ignore weather is OFF}} /Else branch to END (r2 set to 0x00)
  0018e6a4: 00601021 addu r2,r3,r0 r2 = weather + 3 (night weather? if snowing, will not boost ice damage. weird flex but okay)
+
  0018e684: 00001021 addu r2,r0,r0           |{{f/std|<nowiki>r2 = 0x00</nowiki>}}
  0018e6a8: 8fbf0010 lw r31,0x0010(r29)
+
  0018e688: 28620002 slti r2,r3,0x0002           |{{f/std|<nowiki>r2 = 0x01 if Weather < 0x02 (clear sky)</nowiki>}}
  0018e6ac: 27bd0018 addiu r29,r29,0x0018
+
  0018e68c: 14400006 bne r2,r0,0x0018e6a8         {{f/Cond|If It's not  a beautiful day}}
  0018e6b0: 03e00008 jr r31
+
  0018e690: 00601021 addu r2,r3,r0               |{{f/std|<nowiki>r2 = Weather value (0x00 or 0x01)</nowiki>}}
  0018e6b4: 00000000 nop
+
  0018e694: 30820001 andi r2,r4,0x0001               |{{f/std|r2 <> 0x00 if it snows}}
 +
  0018e698: 10400003 beq r2,r0,0x0018e6a8             {{f/Cond|If it snows}}
 +
  0018e69c: 00601021 addu r2,r3,r0                   |{{f/std|<nowiki>r2 = Weather value</nowiki>}}
 +
  0018e6a0: 24630003 addiu r3,r3,0x0003                   |{{f/std|<nowiki>r3 = Weather + 0x03</nowiki>}}
 +
  0018e6a4: 00601021 addu r2,r3,r0                       |{{f/std|<nowiki>r2 = Weather + 3 (snowy weather)</nowiki>}}
 +
  0018e6a8: 8fbf0010 lw r31,0x0010(r29)       END
 +
  0018e6ac: 27bd0018 addiu r29,r29,0x0018    
 +
  0018e6b0: 03e00008 jr r31                  
 +
  0018e6b4: 00000000 nop  
 +
=== Notes ===
 +
Returned values
 +
  r2 = 0x00 If weather is ignored
 +
  r2 = 0x01 Clear
 +
  r2 = 0x02 Rain
 +
  r2 = 0x03 Thunderstorm
 +
  r2 = 0x04 Strong Thunderstorm
 +
  r2 = 0x05 Snowstorm
 +
  r2 = 0x06 Snowstorm
 +
  r2 = 0x07 Strong Snowstorm                   
 +
=== Return locations ===
 +
'''Battle.bin'''
 +
00174380: [[00174370-001743c4]]
 +
00186eec: [[Weather_Elemental_effects]]

Latest revision as of 12:36, 10 April 2022

Used in Weather Elemental effects routine.  Credit goes to Dokurider for finding it for me. Credit to Talcall for finding the snowy weather flag.

No Parameters 

Returns r2 = 0x00 if 0x800b6698 has flag 0x02 ON (ignore weather ? Inside of building ?)
        r2 = Weather value
        r2 = Weather value + 0x03 if it snows (0x800b6698 has flag 0x01 ON)

See Weather - See Notes
---------------------------------------------------------------------------------------------
0018e660: 27bdffe8 addiu r29,r29,-0x0018    
0018e664: afbf0010 sw r31,0x0010(r29)       
0018e668: 0c04ed64 jal 0x0013b590           |-->Get Script Variable  Returns r2 = Weather value
0018e66c: 34040023 ori r4,r0,0x0023         |r4 = 0x23 (Variable Weather)
0018e670: 3c04800b lui r4,0x800b            |
0018e674: 8c846698 lw r4,0x6698(r4)         |r4 = weather palette mods  0x800b6698 / 800b6698
0018e678: 00401821 addu r3,r2,r0            |r3 = weather value
0018e67c: 30820002 andi r2,r4,0x0002        |r2 <> 0x00 if Palette Mod = 0x2 palette mod bitflag
0018e680: 14400009 bne r2,r0,0x0018e6a8     #If Ignore weather is OFF /Else branch to END (r2 set to 0x00)
0018e684: 00001021 addu r2,r0,r0            |r2 = 0x00
0018e688: 28620002 slti r2,r3,0x0002            |r2 = 0x01 if Weather < 0x02 (clear sky)
0018e68c: 14400006 bne r2,r0,0x0018e6a8         #If It's not  a beautiful day
0018e690: 00601021 addu r2,r3,r0                |r2 = Weather value (0x00 or 0x01)
0018e694: 30820001 andi r2,r4,0x0001                |r2 <> 0x00 if it snows
0018e698: 10400003 beq r2,r0,0x0018e6a8             #If it snows
0018e69c: 00601021 addu r2,r3,r0                    |r2 = Weather value
0018e6a0: 24630003 addiu r3,r3,0x0003                   |r3 = Weather + 0x03
0018e6a4: 00601021 addu r2,r3,r0                        |r2 = Weather + 3 (snowy weather)
0018e6a8: 8fbf0010 lw r31,0x0010(r29)       END
0018e6ac: 27bd0018 addiu r29,r29,0x0018     
0018e6b0: 03e00008 jr r31                   
0018e6b4: 00000000 nop 

Notes

Returned values
 r2 = 0x00 If weather is ignored
 r2 = 0x01 Clear
 r2 = 0x02 Rain
 r2 = 0x03 Thunderstorm
 r2 = 0x04 Strong Thunderstorm
 r2 = 0x05 Snowstorm
 r2 = 0x06 Snowstorm
 r2 = 0x07 Strong Snowstorm                     

Return locations

Battle.bin
00174380: 00174370-001743c4
00186eec: Weather_Elemental_effects