mirror of
https://github.com/pret/pokeruby.git
synced 2025-03-04 02:47:16 +00:00
label and decompile more of field_weather_2
This commit is contained in:
parent
c9a21f43bd
commit
37418d05c4
@ -11280,14 +11280,14 @@ _080D812A:
|
||||
ldr r2, _080D81C4 @ =0x85000400
|
||||
str r2, [r0, 0x8]
|
||||
ldr r2, [r0, 0x8]
|
||||
ldr r2, _080D81C8 @ =gWeatherFog1Tiles
|
||||
ldr r2, _080D81C8 @ =gWeatherFog2Tiles
|
||||
ldr r3, [sp]
|
||||
str r2, [r0]
|
||||
str r3, [r0, 0x4]
|
||||
ldr r2, _080D81CC @ =0x80000400
|
||||
str r2, [r0, 0x8]
|
||||
ldr r0, [r0, 0x8]
|
||||
ldr r0, _080D81D0 @ =gWeatherFog1Tilemap
|
||||
ldr r0, _080D81D0 @ =gBattleAnimFogTilemap
|
||||
bl LZDecompressVram
|
||||
ldr r0, _080D81D4 @ =gUnknown_083970E8
|
||||
mov r1, sp
|
||||
@ -11326,9 +11326,9 @@ _080D81B8: .4byte gUnknown_030041B4
|
||||
_080D81BC: .4byte REG_BG1HOFS
|
||||
_080D81C0: .4byte 0x040000d4
|
||||
_080D81C4: .4byte 0x85000400
|
||||
_080D81C8: .4byte gWeatherFog1Tiles
|
||||
_080D81C8: .4byte gWeatherFog2Tiles
|
||||
_080D81CC: .4byte 0x80000400
|
||||
_080D81D0: .4byte gWeatherFog1Tilemap
|
||||
_080D81D0: .4byte gBattleAnimFogTilemap
|
||||
_080D81D4: .4byte gUnknown_083970E8
|
||||
_080D81D8: .4byte gTasks
|
||||
_080D81DC: .4byte sub_80D81E0
|
||||
@ -11672,14 +11672,14 @@ _080D845E:
|
||||
ldr r2, _080D84FC @ =0x85000400
|
||||
str r2, [r0, 0x8]
|
||||
ldr r2, [r0, 0x8]
|
||||
ldr r2, _080D8500 @ =gWeatherFog1Tiles
|
||||
ldr r2, _080D8500 @ =gWeatherFog2Tiles
|
||||
ldr r3, [sp]
|
||||
str r2, [r0]
|
||||
str r3, [r0, 0x4]
|
||||
ldr r2, _080D8504 @ =0x80000400
|
||||
str r2, [r0, 0x8]
|
||||
ldr r0, [r0, 0x8]
|
||||
ldr r0, _080D8508 @ =gWeatherFog1Tilemap
|
||||
ldr r0, _080D8508 @ =gBattleAnimFogTilemap
|
||||
bl LZDecompressVram
|
||||
ldr r0, _080D850C @ =gUnknown_083970E8
|
||||
mov r1, sp
|
||||
@ -11720,9 +11720,9 @@ _080D84F0: .4byte gUnknown_030041B4
|
||||
_080D84F4: .4byte REG_BG1HOFS
|
||||
_080D84F8: .4byte 0x040000d4
|
||||
_080D84FC: .4byte 0x85000400
|
||||
_080D8500: .4byte gWeatherFog1Tiles
|
||||
_080D8500: .4byte gWeatherFog2Tiles
|
||||
_080D8504: .4byte 0x80000400
|
||||
_080D8508: .4byte gWeatherFog1Tilemap
|
||||
_080D8508: .4byte gBattleAnimFogTilemap
|
||||
_080D850C: .4byte gUnknown_083970E8
|
||||
_080D8510: .4byte gTasks
|
||||
_080D8514: .4byte 0x0000ffff
|
||||
|
@ -204,7 +204,7 @@ _08123384:
|
||||
bl ResetTasks
|
||||
bl FreeAllSpritePalettes
|
||||
bl ResetPaletteFade
|
||||
bl sub_807C828
|
||||
bl StartWeather
|
||||
movs r4, 0
|
||||
ldr r0, _081233D4 @ =gWeatherPtr
|
||||
ldr r0, [r0]
|
||||
|
@ -5,373 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_807F6E8
|
||||
sub_807F6E8: @ 807F6E8
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
ldr r0, _0807F75C @ =gWeatherPtr
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0807F760 @ =0x000006fb
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0807F792
|
||||
ldr r0, _0807F764 @ =gWeatherFog1SpriteSheet
|
||||
ldr r1, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
mov r0, sp
|
||||
bl LoadSpriteSheet
|
||||
movs r5, 0
|
||||
_0807F70C:
|
||||
ldr r0, _0807F768 @ =gSpriteTemplate_839AB90
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0xFF
|
||||
bl CreateSpriteAtEnd
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x40
|
||||
beq _0807F770
|
||||
lsls r4, r0, 4
|
||||
adds r4, r0
|
||||
lsls r4, 2
|
||||
ldr r0, _0807F76C @ =gSprites
|
||||
adds r4, r0
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x5
|
||||
bl __umodsi3
|
||||
strh r0, [r4, 0x2E]
|
||||
lsls r0, 16
|
||||
lsrs r0, 10
|
||||
adds r0, 0x20
|
||||
strh r0, [r4, 0x20]
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x5
|
||||
bl __udivsi3
|
||||
lsls r0, 16
|
||||
lsrs r0, 10
|
||||
adds r0, 0x20
|
||||
strh r0, [r4, 0x22]
|
||||
ldr r2, _0807F75C @ =gWeatherPtr
|
||||
ldr r0, [r2]
|
||||
lsls r1, r5, 2
|
||||
adds r0, 0xA0
|
||||
adds r0, r1
|
||||
str r4, [r0]
|
||||
b _0807F77E
|
||||
.align 2, 0
|
||||
_0807F75C: .4byte gWeatherPtr
|
||||
_0807F760: .4byte 0x000006fb
|
||||
_0807F764: .4byte gWeatherFog1SpriteSheet
|
||||
_0807F768: .4byte gSpriteTemplate_839AB90
|
||||
_0807F76C: .4byte gSprites
|
||||
_0807F770:
|
||||
ldr r2, _0807F79C @ =gWeatherPtr
|
||||
ldr r1, [r2]
|
||||
lsls r0, r5, 2
|
||||
adds r1, 0xA0
|
||||
adds r1, r0
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
_0807F77E:
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
cmp r5, 0x13
|
||||
bls _0807F70C
|
||||
ldr r0, [r2]
|
||||
ldr r1, _0807F7A0 @ =0x000006fb
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
_0807F792:
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807F79C: .4byte gWeatherPtr
|
||||
_0807F7A0: .4byte 0x000006fb
|
||||
thumb_func_end sub_807F6E8
|
||||
|
||||
thumb_func_start sub_807F7A4
|
||||
sub_807F7A4: @ 807F7A4
|
||||
push {r4,r5,lr}
|
||||
ldr r0, _0807F7EC @ =gWeatherPtr
|
||||
ldr r1, [r0]
|
||||
ldr r2, _0807F7F0 @ =0x000006fb
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0807F7E4
|
||||
movs r4, 0
|
||||
adds r5, r1, 0
|
||||
adds r5, 0xA0
|
||||
_0807F7BA:
|
||||
lsls r0, r4, 2
|
||||
adds r0, r5, r0
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0807F7C8
|
||||
bl DestroySprite
|
||||
_0807F7C8:
|
||||
adds r0, r4, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
cmp r4, 0x13
|
||||
bls _0807F7BA
|
||||
ldr r0, _0807F7F4 @ =0x00001201
|
||||
bl FreeSpriteTilesByTag
|
||||
ldr r0, _0807F7EC @ =gWeatherPtr
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0807F7F0 @ =0x000006fb
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
strb r1, [r0]
|
||||
_0807F7E4:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807F7EC: .4byte gWeatherPtr
|
||||
_0807F7F0: .4byte 0x000006fb
|
||||
_0807F7F4: .4byte 0x00001201
|
||||
thumb_func_end sub_807F7A4
|
||||
|
||||
thumb_func_start sub_807F7F8
|
||||
sub_807F7F8: @ 807F7F8
|
||||
push {lr}
|
||||
ldr r0, _0807F844 @ =gWeatherPtr
|
||||
ldr r1, [r0]
|
||||
ldr r0, _0807F848 @ =0x000006cc
|
||||
adds r2, r1, r0
|
||||
movs r3, 0
|
||||
movs r0, 0
|
||||
strh r0, [r2]
|
||||
ldr r2, _0807F84C @ =0x000006d2
|
||||
adds r0, r1, r2
|
||||
strb r3, [r0]
|
||||
subs r2, 0x11
|
||||
adds r0, r1, r2
|
||||
strb r3, [r0]
|
||||
ldr r3, _0807F850 @ =0x000006c2
|
||||
adds r0, r1, r3
|
||||
movs r2, 0x14
|
||||
strb r2, [r0]
|
||||
adds r3, 0x3C
|
||||
adds r0, r1, r3
|
||||
strh r2, [r0]
|
||||
movs r0, 0xE0
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _0807F840
|
||||
movs r0, 0
|
||||
movs r1, 0x10
|
||||
bl sub_807DB64
|
||||
ldr r1, _0807F854 @ =REG_BLDALPHA
|
||||
movs r2, 0xFD
|
||||
lsls r2, 6
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
_0807F840:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807F844: .4byte gWeatherPtr
|
||||
_0807F848: .4byte 0x000006cc
|
||||
_0807F84C: .4byte 0x000006d2
|
||||
_0807F850: .4byte 0x000006c2
|
||||
_0807F854: .4byte REG_BLDALPHA
|
||||
thumb_func_end sub_807F7F8
|
||||
|
||||
thumb_func_start sub_807F858
|
||||
sub_807F858: @ 807F858
|
||||
push {r4,lr}
|
||||
bl sub_807F7F8
|
||||
ldr r0, _0807F880 @ =gWeatherPtr
|
||||
ldr r1, [r0]
|
||||
ldr r2, _0807F884 @ =0x000006d2
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0807F878
|
||||
adds r4, r1, r2
|
||||
_0807F86E:
|
||||
bl sub_807F888
|
||||
ldrb r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0807F86E
|
||||
_0807F878:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807F880: .4byte gWeatherPtr
|
||||
_0807F884: .4byte 0x000006d2
|
||||
thumb_func_end sub_807F858
|
||||
|
||||
thumb_func_start sub_807F888
|
||||
sub_807F888: @ 807F888
|
||||
push {r4,r5,lr}
|
||||
ldr r2, _0807F8CC @ =gWeatherPtr
|
||||
ldr r1, [r2]
|
||||
ldr r0, _0807F8D0 @ =gSpriteCoordOffsetX
|
||||
ldrh r0, [r0]
|
||||
ldr r3, _0807F8D4 @ =0x000001ff
|
||||
ands r3, r0
|
||||
ldr r0, _0807F8D8 @ =0x000006fc
|
||||
adds r1, r0
|
||||
strh r3, [r1]
|
||||
cmp r3, 0xEF
|
||||
bls _0807F8B4
|
||||
adds r4, r1, 0
|
||||
adds r1, r3, 0
|
||||
_0807F8A4:
|
||||
adds r3, r1, 0
|
||||
subs r3, 0xF0
|
||||
adds r1, r3, 0
|
||||
lsls r0, r3, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0xEF
|
||||
bhi _0807F8A4
|
||||
strh r3, [r4]
|
||||
_0807F8B4:
|
||||
ldr r5, [r2]
|
||||
ldr r1, _0807F8DC @ =0x000006cc
|
||||
adds r4, r5, r1
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0x1
|
||||
beq _0807F8EC
|
||||
cmp r0, 0x1
|
||||
bgt _0807F8E0
|
||||
cmp r0, 0
|
||||
beq _0807F8E6
|
||||
b _0807F928
|
||||
.align 2, 0
|
||||
_0807F8CC: .4byte gWeatherPtr
|
||||
_0807F8D0: .4byte gSpriteCoordOffsetX
|
||||
_0807F8D4: .4byte 0x000001ff
|
||||
_0807F8D8: .4byte 0x000006fc
|
||||
_0807F8DC: .4byte 0x000006cc
|
||||
_0807F8E0:
|
||||
cmp r0, 0x2
|
||||
beq _0807F908
|
||||
b _0807F928
|
||||
_0807F8E6:
|
||||
bl sub_807F99C
|
||||
b _0807F91A
|
||||
_0807F8EC:
|
||||
movs r1, 0xE0
|
||||
lsls r1, 3
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0807F8FC
|
||||
bl sub_807F9AC
|
||||
_0807F8FC:
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_807DBA4
|
||||
b _0807F91A
|
||||
_0807F908:
|
||||
bl sub_807DBE8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807F92C
|
||||
ldr r0, _0807F924 @ =0x000006d2
|
||||
adds r1, r5, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_0807F91A:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _0807F92C
|
||||
.align 2, 0
|
||||
_0807F924: .4byte 0x000006d2
|
||||
_0807F928:
|
||||
bl sub_807DBE8
|
||||
_0807F92C:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_807F888
|
||||
|
||||
thumb_func_start sub_807F934
|
||||
sub_807F934: @ 807F934
|
||||
push {r4,lr}
|
||||
ldr r0, _0807F950 @ =gWeatherPtr
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0807F954 @ =0x000006ce
|
||||
adds r4, r0, r1
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0x1
|
||||
beq _0807F96A
|
||||
cmp r0, 0x1
|
||||
bgt _0807F958
|
||||
cmp r0, 0
|
||||
beq _0807F95E
|
||||
b _0807F98C
|
||||
.align 2, 0
|
||||
_0807F950: .4byte gWeatherPtr
|
||||
_0807F954: .4byte 0x000006ce
|
||||
_0807F958:
|
||||
cmp r0, 0x2
|
||||
beq _0807F980
|
||||
b _0807F98C
|
||||
_0807F95E:
|
||||
movs r0, 0
|
||||
movs r1, 0x10
|
||||
movs r2, 0x1
|
||||
bl sub_807DBA4
|
||||
b _0807F978
|
||||
_0807F96A:
|
||||
bl sub_807DBE8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807F994
|
||||
bl sub_807FA54
|
||||
_0807F978:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
b _0807F994
|
||||
_0807F980:
|
||||
ldr r1, _0807F990 @ =REG_BLDALPHA
|
||||
movs r0, 0
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
_0807F98C:
|
||||
movs r0, 0
|
||||
b _0807F996
|
||||
.align 2, 0
|
||||
_0807F990: .4byte REG_BLDALPHA
|
||||
_0807F994:
|
||||
movs r0, 0x1
|
||||
_0807F996:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_807F934
|
||||
|
||||
thumb_func_start sub_807F99C
|
||||
sub_807F99C: @ 807F99C
|
||||
push {lr}
|
||||
ldr r0, _0807F9A8 @ =gWeatherAshSpriteSheet
|
||||
bl LoadSpriteSheet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807F9A8: .4byte gWeatherAshSpriteSheet
|
||||
thumb_func_end sub_807F99C
|
||||
|
||||
thumb_func_start sub_807F9AC
|
||||
sub_807F9AC: @ 807F9AC
|
||||
push {r4,r5,lr}
|
||||
@ -618,7 +251,7 @@ sub_807FB24: @ 807FB24
|
||||
strh r2, [r0]
|
||||
movs r0, 0
|
||||
movs r1, 0x10
|
||||
bl sub_807DB64
|
||||
bl Weather_SetBlendCoeffs
|
||||
_0807FB8E:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
@ -687,10 +320,10 @@ _0807FC0C:
|
||||
movs r0, 0xC
|
||||
movs r1, 0x8
|
||||
movs r2, 0x8
|
||||
bl sub_807DBA4
|
||||
bl Weather_SetTargetBlendCoeffs
|
||||
b _0807FC2A
|
||||
_0807FC18:
|
||||
bl sub_807DBE8
|
||||
bl Weather_UpdateBlend
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807FC30
|
||||
@ -737,10 +370,10 @@ _0807FC6A:
|
||||
movs r0, 0
|
||||
movs r1, 0x10
|
||||
movs r2, 0x1
|
||||
bl sub_807DBA4
|
||||
bl Weather_SetTargetBlendCoeffs
|
||||
b _0807FC86
|
||||
_0807FC76:
|
||||
bl sub_807DBE8
|
||||
bl Weather_UpdateBlend
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807FC92
|
||||
@ -848,7 +481,7 @@ sub_807FD30: @ 807FD30
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0807FDD6
|
||||
ldr r0, _0807FDA4 @ =gWeatherFog0SpriteSheet
|
||||
ldr r0, _0807FDA4 @ =gWeatherFog1SpriteSheet
|
||||
ldr r1, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
@ -893,7 +526,7 @@ _0807FD54:
|
||||
.align 2, 0
|
||||
_0807FD9C: .4byte gWeatherPtr
|
||||
_0807FDA0: .4byte 0x00000724
|
||||
_0807FDA4: .4byte gWeatherFog0SpriteSheet
|
||||
_0807FDA4: .4byte gWeatherFog1SpriteSheet
|
||||
_0807FDA8: .4byte gSpriteTemplate_839AC04
|
||||
_0807FDAC: .4byte gSprites
|
||||
_0807FDB0:
|
||||
@ -1068,7 +701,7 @@ sub_807FE9C: @ 807FE9C
|
||||
_0807FEF0:
|
||||
movs r0, 0
|
||||
movs r1, 0x10
|
||||
bl sub_807DB64
|
||||
bl Weather_SetBlendCoeffs
|
||||
_0807FEF8:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
@ -1150,10 +783,10 @@ _0807FF98:
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl sub_807DBA4
|
||||
bl Weather_SetTargetBlendCoeffs
|
||||
b _0807FFB6
|
||||
_0807FFA4:
|
||||
bl sub_807DBE8
|
||||
bl Weather_UpdateBlend
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0807FFBC
|
||||
@ -1201,10 +834,10 @@ _0807FFFA:
|
||||
movs r0, 0
|
||||
movs r1, 0x10
|
||||
movs r2, 0
|
||||
bl sub_807DBA4
|
||||
bl Weather_SetTargetBlendCoeffs
|
||||
b _08080016
|
||||
_08080006:
|
||||
bl sub_807DBE8
|
||||
bl Weather_UpdateBlend
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08080022
|
||||
@ -1793,7 +1426,7 @@ sub_8080470: @ 8080470
|
||||
thumb_func_start sub_8080474
|
||||
sub_8080474: @ 8080474
|
||||
push {r4,r5,lr}
|
||||
bl sub_807F49C
|
||||
bl Fog2_InitVars
|
||||
ldr r0, _080804B4 @ =gWeatherPtr
|
||||
ldr r4, [r0]
|
||||
ldr r1, _080804B8 @ =0x0000072e
|
||||
@ -1859,7 +1492,7 @@ _080804F4: .4byte 0x000006d2
|
||||
thumb_func_start sub_80804F8
|
||||
sub_80804F8: @ 80804F8
|
||||
push {r4-r7,lr}
|
||||
bl sub_807F52C
|
||||
bl Fog2_Main
|
||||
ldr r0, _08080558 @ =gWeatherPtr
|
||||
ldr r5, [r0]
|
||||
ldr r0, _0808055C @ =0x00000726
|
||||
@ -1916,7 +1549,7 @@ _08080568: .4byte 0x0000072a
|
||||
thumb_func_start sub_808056C
|
||||
sub_808056C: @ 808056C
|
||||
push {lr}
|
||||
bl sub_807F5EC
|
||||
bl Fog2_Finish
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0808057C
|
||||
|
@ -24,7 +24,7 @@ gUnknown_0839AC68:: @ 839AC68
|
||||
|
||||
.align 2
|
||||
gWeatherBubbleSpriteSheet:: @ 839AC70
|
||||
obj_tiles WeatherBubbleTiles, 0x40, 0x1205
|
||||
obj_tiles gWeatherBubbleTiles, 0x40, 0x1205
|
||||
|
||||
.align 1
|
||||
gUnknown_0839AC78:: @ 839AC78
|
||||
|
@ -2997,8 +2997,8 @@ gBattleAnimSpriteSheet_277:: @ 8E6DA54
|
||||
.incbin "graphics/battle_anims/sprites/277.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gWeatherFog1Tilemap:: @ 8E6DE48
|
||||
.incbin "graphics/weather/fog1.bin.lz"
|
||||
gBattleAnimFogTilemap:: @ 8E6DE48
|
||||
.incbin "graphics/battle_anims/backgrounds/fog.bin.lz"
|
||||
|
||||
.align 2
|
||||
gBattleAnimSpritePalette_283:: @ 8E6DFC0
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 928 B |
Binary file not shown.
Before Width: | Height: | Size: 1018 B After Width: | Height: | Size: 928 B |
BIN
graphics/weather/fog2.png
Normal file
BIN
graphics/weather/fog2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1018 B |
@ -1,20 +1,30 @@
|
||||
#ifndef GUARD_WEATHER_H
|
||||
#define GUARD_WEATHER_H
|
||||
|
||||
#define WEATHER_NONE 0
|
||||
#define WEATHER_CLOUDS 1
|
||||
#define WEATHER_RAIN_LIGHT 3
|
||||
#define WEATHER_SNOW 4
|
||||
#define WEATHER_RAIN_MED 5
|
||||
#define WEATHER_FOG_2 6
|
||||
#define WEATHER_FOG_1 7
|
||||
#define WEATHER_DROUGHT 12
|
||||
#define WEATHER_RAIN_HEAVY 13
|
||||
|
||||
struct Sprite;
|
||||
|
||||
// TODO: This might be a union
|
||||
struct Weather2
|
||||
{
|
||||
/*0x00*/ u8 filler0[0xA0];
|
||||
/*0xA0*/ struct Sprite *fogSprites[20];
|
||||
};
|
||||
|
||||
struct Weather
|
||||
{
|
||||
struct Sprite *unknown_0[24];
|
||||
struct Sprite *snowflakeSprites[0x65]; // snowflakes?
|
||||
struct Sprite *cloudSprites[3];
|
||||
/*0x000*/ struct Sprite *rainSprites[24];
|
||||
/*0x060*/ struct Sprite *snowflakeSprites[0x65]; // snowflakes?
|
||||
/*0x1F4*/ struct Sprite *cloudSprites[3];
|
||||
u8 unknown_200[2][32];
|
||||
u8 filler_240[0x460-0x240];
|
||||
u8 unk460[2][32];
|
||||
@ -32,11 +42,11 @@ struct Weather
|
||||
u8 unknown_6C9;
|
||||
u8 unknown_6CA;
|
||||
u8 unknown_6CB;
|
||||
u16 unknown_6CC;
|
||||
u16 initStep;
|
||||
u16 unknown_6CE;
|
||||
u8 currWeather;
|
||||
u8 unknown_6D1;
|
||||
u8 unknown_6D2;
|
||||
u8 nextWeather;
|
||||
u8 weatherGfxLoaded;
|
||||
u8 unknown_6D3;
|
||||
u8 unknown_6D4;
|
||||
u8 unknown_6D5;
|
||||
@ -47,25 +57,26 @@ struct Weather
|
||||
u8 unknown_6DB;
|
||||
u8 unknown_6DC;
|
||||
u8 rainStrength;
|
||||
u8 unknown_6DE;
|
||||
/*0x6DE*/ u8 cloudsActive;
|
||||
u8 filler_6DF[1];
|
||||
u16 unknown_6E0;
|
||||
u16 unknown_6E2;
|
||||
u8 unknown_6E4;
|
||||
u8 snowflakeSpriteCount;
|
||||
u8 unknown_6E5;
|
||||
u16 unknown_6E6;
|
||||
u16 unknown_6E8;
|
||||
u16 thunderCounter;
|
||||
u8 unknown_6EA;
|
||||
u8 unknown_6EB;
|
||||
u8 unknown_6EC;
|
||||
u8 unknown_6ED;
|
||||
u16 unknown_6EE;
|
||||
u16 fog2ScrollPosX;
|
||||
u16 unknown_6F0;
|
||||
u16 unknown_6F2;
|
||||
u8 unknown_6F4[6];
|
||||
u8 unknown_6FA;
|
||||
u8 unknown_6FB;
|
||||
u8 filler_6FC[4];
|
||||
u8 unknown_6FB; // fogActive
|
||||
u16 unknown_6FC;
|
||||
u16 unknown_6FE;
|
||||
u8 unknown_700;
|
||||
u8 filler_701[0x15];
|
||||
u8 unknown_716;
|
||||
@ -75,13 +86,13 @@ struct Weather
|
||||
u8 filler_725[9];
|
||||
u8 unknown_72E;
|
||||
u8 filler_72F;
|
||||
u16 unknown_730;
|
||||
u16 unknown_732;
|
||||
u16 unknown_734;
|
||||
u16 unknown_736;
|
||||
u16 currBlendEVA;
|
||||
u16 currBlendEVB;
|
||||
u16 targetBlendEVA;
|
||||
u16 targetBlendEVB;
|
||||
u8 unknown_738;
|
||||
u8 unknown_739;
|
||||
u8 unknown_73A;
|
||||
u8 blendDelay;
|
||||
u8 filler_73B[0x3C-0x3B];
|
||||
s16 unknown_73C;
|
||||
s16 unknown_73E;
|
||||
@ -92,12 +103,12 @@ struct Weather
|
||||
u8 unknown_74E;
|
||||
};
|
||||
|
||||
void sub_807C828(void);
|
||||
void StartWeather(void);
|
||||
void DoWeatherEffect(u8 effect);
|
||||
void sub_807C988(u8 effect);
|
||||
void sub_807C9B4(u8 effect);
|
||||
void sub_807C9E4(u8);
|
||||
void sub_807CA34(u8);
|
||||
void Task_WeatherInit(u8);
|
||||
void Task_WeatherMain(u8);
|
||||
void sub_807CAE8(void);
|
||||
void nullsub_38(void);
|
||||
void sub_807CB10(void);
|
||||
@ -120,7 +131,7 @@ void fade_screen(u8, u8);
|
||||
void sub_807D78C(u8 tag);
|
||||
void sub_807D874(u8);
|
||||
// ...
|
||||
void sub_807DB64(u8, u8);
|
||||
void Weather_SetBlendCoeffs(u8, u8);
|
||||
// ...
|
||||
void sub_807DE68(void);
|
||||
// ...
|
||||
|
@ -539,7 +539,28 @@
|
||||
#define BGCNT_AFF1024x1024 0xC000
|
||||
|
||||
// BLDCNT
|
||||
// Bits 0-5 select layers for the 1st target
|
||||
#define BLDCNT_TGT1_BG0 (1 << 0)
|
||||
#define BLDCNT_TGT1_BG1 (1 << 1)
|
||||
#define BLDCNT_TGT1_BG2 (1 << 2)
|
||||
#define BLDCNT_TGT1_BG3 (1 << 3)
|
||||
#define BLDCNT_TGT1_OBJ (1 << 4)
|
||||
#define BLDCNT_TGT1_BD (1 << 5)
|
||||
// Bits 6-7 select the special effect
|
||||
#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
|
||||
#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
|
||||
#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
|
||||
#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
|
||||
// Bits 8-13 select layers for the 2nd target
|
||||
#define BLDCNT_TGT2_BG0 (1 << 8)
|
||||
#define BLDCNT_TGT2_BG1 (1 << 9)
|
||||
#define BLDCNT_TGT2_BG2 (1 << 10)
|
||||
#define BLDCNT_TGT2_BG3 (1 << 11)
|
||||
#define BLDCNT_TGT2_OBJ (1 << 12)
|
||||
#define BLDCNT_TGT2_BD (1 << 13)
|
||||
|
||||
// BLDALPHA
|
||||
#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
|
||||
|
||||
// SOUNDCNT_H
|
||||
#define SOUND_CGB_MIX_QUARTER 0x0000
|
||||
|
@ -28,10 +28,10 @@ struct WeatherPaletteData
|
||||
|
||||
struct WeatherCallbacks
|
||||
{
|
||||
void (*func0)(void);
|
||||
void (*func1)(void);
|
||||
void (*func2)(void);
|
||||
u8 (*func3)(void);
|
||||
void (*initVars)(void);
|
||||
void (*main)(void);
|
||||
void (*initAll)(void);
|
||||
u8 (*finish)(void);
|
||||
};
|
||||
|
||||
extern struct Weather gWeather;
|
||||
@ -48,7 +48,7 @@ const u8 DroughtPaletteData_5[] = INCBIN_U8("graphics/weather/drought5.bin.lz");
|
||||
extern u8 (*gUnknown_0202FC48)[32];
|
||||
extern u8 gUnknown_0202F9E8[32];
|
||||
|
||||
const u8 *const gUnknown_08396FA8[] =
|
||||
static const u8 *const sCompressedDroughtPalettes[] =
|
||||
{
|
||||
DroughtPaletteData_0,
|
||||
DroughtPaletteData_1,
|
||||
@ -65,34 +65,34 @@ const u8 *const gUnknown_08396FA8[] =
|
||||
// this file produces the same result as accessing gWeather directly.
|
||||
struct Weather *const gWeatherPtr = &gWeather;
|
||||
|
||||
void sub_807CAE8(void);
|
||||
void nullsub_38(void);
|
||||
u8 sub_807CB0C(void);
|
||||
void sub_807DE78(void);
|
||||
void sub_807DEF4(void);
|
||||
void sub_807DEC4(void);
|
||||
u8 sub_807DF54(void);
|
||||
void None_Init(void);
|
||||
void None_Main(void);
|
||||
u8 None_Finish(void);
|
||||
void Clouds_InitVars(void);
|
||||
void Clouds_Main(void);
|
||||
void Clouds_InitAll(void);
|
||||
u8 Clouds_Finish(void);
|
||||
void sub_807DF9C(void);
|
||||
void nullsub_55(void);
|
||||
void sub_807DFC0(void);
|
||||
u8 sub_807DFD0(void);
|
||||
void LightRain_InitVars(void);
|
||||
void sub_807E400(void);
|
||||
void sub_807E3D0(void);
|
||||
u8 sub_807E460(void);
|
||||
void LightRain_Main(void);
|
||||
void LightRain_InitAll(void);
|
||||
u8 LightRain_Finish(void);
|
||||
void Snow_InitVars(void);
|
||||
void snowflakes_progress2(void);
|
||||
void sub_807EA18(void);
|
||||
u8 sub_807EAC0(void);
|
||||
void sub_807EE80(void);
|
||||
void sub_807EFC0(void);
|
||||
void sub_807EEF4(void);
|
||||
u8 sub_807F34C(void);
|
||||
void sub_807F49C(void);
|
||||
void sub_807F52C(void);
|
||||
void sub_807F4FC(void);
|
||||
u8 sub_807F5EC(void);
|
||||
void sub_807F7F8(void);
|
||||
void Snow_Main(void);
|
||||
void Snow_InitAll(void);
|
||||
u8 Snow_Finish(void);
|
||||
void MedRain_InitVars(void);
|
||||
void Rain_Main(void);
|
||||
void MedRain_InitAll(void);
|
||||
u8 Rain_Finish(void);
|
||||
void Fog2_InitVars(void);
|
||||
void Fog2_Main(void);
|
||||
void Fog2_InitAll(void);
|
||||
u8 Fog2_Finish(void);
|
||||
void Fog1_InitVars(void);
|
||||
void sub_807F888(void);
|
||||
void sub_807F858(void);
|
||||
u8 sub_807F934(void);
|
||||
@ -104,10 +104,10 @@ void sub_807FB24(void);
|
||||
void sub_807FBD8(void);
|
||||
void sub_807FBA8(void);
|
||||
u8 sub_807FC3C(void);
|
||||
void sub_807F49C(void);
|
||||
void sub_807F52C(void);
|
||||
void sub_807F4FC(void);
|
||||
u8 sub_807F5EC(void);
|
||||
void Fog2_InitVars(void);
|
||||
void Fog2_Main(void);
|
||||
void Fog2_InitAll(void);
|
||||
u8 Fog2_Finish(void);
|
||||
void sub_8080430(void);
|
||||
void nullsub_56(void);
|
||||
void sub_8080460(void);
|
||||
@ -116,32 +116,32 @@ void sub_807E110(void);
|
||||
void sub_807E174(void);
|
||||
void sub_807E144(void);
|
||||
u8 sub_807E258(void);
|
||||
void sub_807EF24(void);
|
||||
void sub_807EFC0(void);
|
||||
void sub_807EF90(void);
|
||||
u8 sub_807F34C(void);
|
||||
void HeavyRain_InitVars(void);
|
||||
void Rain_Main(void);
|
||||
void HeavyRain_InitAll(void);
|
||||
u8 Rain_Finish(void);
|
||||
void sub_8080474(void);
|
||||
void sub_80804F8(void);
|
||||
void sub_80804C8(void);
|
||||
u8 sub_808056C(void);
|
||||
|
||||
const struct WeatherCallbacks gUnknown_08396FC8[] =
|
||||
static const struct WeatherCallbacks sWeatherFuncs[] =
|
||||
{
|
||||
{sub_807CAE8, nullsub_38, sub_807CAE8, sub_807CB0C},
|
||||
{sub_807DE78, sub_807DEF4, sub_807DEC4, sub_807DF54},
|
||||
{sub_807DF9C, nullsub_55, sub_807DFC0, sub_807DFD0},
|
||||
{LightRain_InitVars, sub_807E400, sub_807E3D0, sub_807E460}, // light rain
|
||||
{Snow_InitVars, snowflakes_progress2, sub_807EA18, sub_807EAC0}, // snow
|
||||
{sub_807EE80, sub_807EFC0, sub_807EEF4, sub_807F34C},
|
||||
{sub_807F49C, sub_807F52C, sub_807F4FC, sub_807F5EC},
|
||||
{sub_807F7F8, sub_807F888, sub_807F858, sub_807F934},
|
||||
{sub_807FE9C, sub_807FF4C, sub_807FF1C, sub_807FFC8},
|
||||
{sub_807FB24, sub_807FBD8, sub_807FBA8, sub_807FC3C},
|
||||
{sub_807F49C, sub_807F52C, sub_807F4FC, sub_807F5EC},
|
||||
{sub_8080430, nullsub_56, sub_8080460, sub_8080470},
|
||||
{sub_807E110, sub_807E174, sub_807E144, sub_807E258},
|
||||
{sub_807EF24, sub_807EFC0, sub_807EF90, sub_807F34C},
|
||||
{sub_8080474, sub_80804F8, sub_80804C8, sub_808056C},
|
||||
{None_Init, None_Main, None_Init, None_Finish},
|
||||
{Clouds_InitVars, Clouds_Main, Clouds_InitAll, Clouds_Finish},
|
||||
{sub_807DF9C, nullsub_55, sub_807DFC0, sub_807DFD0},
|
||||
{LightRain_InitVars, LightRain_Main, LightRain_InitAll, LightRain_Finish}, // light rain
|
||||
{Snow_InitVars, Snow_Main, Snow_InitAll, Snow_Finish}, // snow
|
||||
{MedRain_InitVars, Rain_Main, MedRain_InitAll, Rain_Finish},
|
||||
{Fog2_InitVars, Fog2_Main, Fog2_InitAll, Fog2_Finish},
|
||||
{Fog1_InitVars, sub_807F888, sub_807F858, sub_807F934}, // fog 1
|
||||
{sub_807FE9C, sub_807FF4C, sub_807FF1C, sub_807FFC8},
|
||||
{sub_807FB24, sub_807FBD8, sub_807FBA8, sub_807FC3C},
|
||||
{Fog2_InitVars, Fog2_Main, Fog2_InitAll, Fog2_Finish},
|
||||
{sub_8080430, nullsub_56, sub_8080460, sub_8080470},
|
||||
{sub_807E110, sub_807E174, sub_807E144, sub_807E258},
|
||||
{HeavyRain_InitVars, Rain_Main, HeavyRain_InitAll, Rain_Finish},
|
||||
{sub_8080474, sub_80804F8, sub_80804C8, sub_808056C},
|
||||
};
|
||||
|
||||
void (*const gUnknown_083970B8[])(void) =
|
||||
@ -190,10 +190,10 @@ const u8 gUnknown_083970C8[] =
|
||||
|
||||
const u16 gUnknown_083970E8[] = INCBIN_U16("graphics/weather/0.gbapal");
|
||||
|
||||
void sub_807C828(void)
|
||||
void StartWeather(void)
|
||||
{
|
||||
u8 index;
|
||||
if (!FuncIsActiveTask(sub_807CA34))
|
||||
if (!FuncIsActiveTask(Task_WeatherMain))
|
||||
{
|
||||
index = AllocSpritePalette(0x1200);
|
||||
CpuCopy32(gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32);
|
||||
@ -202,8 +202,8 @@ void sub_807C828(void)
|
||||
gWeatherPtr->unknown_6D4 = AllocSpritePalette(0x1201);
|
||||
gWeatherPtr->unknown_6DA = 0;
|
||||
gWeatherPtr->unknown_6D8 = 0;
|
||||
gWeatherPtr->unknown_6DE = 0;
|
||||
gWeatherPtr->unknown_6E4 = 0;
|
||||
gWeatherPtr->cloudsActive = 0;
|
||||
gWeatherPtr->snowflakeSpriteCount = 0;
|
||||
gWeatherPtr->unknown_700 = 0;
|
||||
gWeatherPtr->unknown_6FB = 0;
|
||||
gWeatherPtr->unknown_724 = 0;
|
||||
@ -211,12 +211,12 @@ void sub_807C828(void)
|
||||
gWeatherPtr->unknown_717 = 0;
|
||||
gWeatherPtr->unknown_72E = 0;
|
||||
gWeatherPtr->unknown_6FA = 0;
|
||||
sub_807DB64(16, 0);
|
||||
Weather_SetBlendCoeffs(16, 0);
|
||||
gWeatherPtr->currWeather = 0;
|
||||
gWeatherPtr->unknown_6C6 = 3;
|
||||
gWeatherPtr->unknown_6C8 = 0;
|
||||
gWeatherPtr->unknown_6D3 = 1;
|
||||
gWeatherPtr->unknown_6C9 = CreateTask(sub_807C9E4, 80);
|
||||
gWeatherPtr->unknown_6C9 = CreateTask(Task_WeatherInit, 80);
|
||||
}
|
||||
}
|
||||
|
||||
@ -226,12 +226,12 @@ void DoWeatherEffect(u8 effect)
|
||||
{
|
||||
PlayRainSoundEffect();
|
||||
}
|
||||
if (gWeatherPtr->unknown_6D1 != effect && gWeatherPtr->currWeather == effect)
|
||||
if (gWeatherPtr->nextWeather != effect && gWeatherPtr->currWeather == effect)
|
||||
{
|
||||
gUnknown_08396FC8[effect].func0();
|
||||
sWeatherFuncs[effect].initVars();
|
||||
}
|
||||
gWeatherPtr->unknown_6D3 = 0;
|
||||
gWeatherPtr->unknown_6D1 = effect;
|
||||
gWeatherPtr->nextWeather = effect;
|
||||
gWeatherPtr->unknown_6CE = 0;
|
||||
}
|
||||
|
||||
@ -239,59 +239,57 @@ void sub_807C988(u8 effect)
|
||||
{
|
||||
PlayRainSoundEffect();
|
||||
gWeatherPtr->currWeather = effect;
|
||||
gWeatherPtr->unknown_6D1 = effect;
|
||||
gWeatherPtr->nextWeather = effect;
|
||||
}
|
||||
|
||||
void sub_807C9B4(u8 effect)
|
||||
{
|
||||
PlayRainSoundEffect();
|
||||
gWeatherPtr->currWeather = effect;
|
||||
gWeatherPtr->unknown_6D1 = effect;
|
||||
gWeatherPtr->nextWeather = effect;
|
||||
gWeatherPtr->unknown_6C8 = 1;
|
||||
}
|
||||
|
||||
void sub_807C9E4(u8 taskId)
|
||||
void Task_WeatherInit(u8 taskId)
|
||||
{
|
||||
if (gWeatherPtr->unknown_6C8)
|
||||
{
|
||||
gUnknown_08396FC8[gWeatherPtr->currWeather].func2();
|
||||
gTasks[taskId].func = sub_807CA34;
|
||||
sWeatherFuncs[gWeatherPtr->currWeather].initAll();
|
||||
gTasks[taskId].func = Task_WeatherMain;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_807CA34(u8 task)
|
||||
void Task_WeatherMain(u8 taskId)
|
||||
{
|
||||
u8 v1;
|
||||
if (gWeatherPtr->currWeather != gWeatherPtr->unknown_6D1)
|
||||
if (gWeatherPtr->currWeather != gWeatherPtr->nextWeather)
|
||||
{
|
||||
v1 = gUnknown_08396FC8[gWeatherPtr->currWeather].func3();
|
||||
if (!v1)
|
||||
if (!sWeatherFuncs[gWeatherPtr->currWeather].finish())
|
||||
{
|
||||
gUnknown_08396FC8[gWeatherPtr->unknown_6D1].func0();
|
||||
gWeatherPtr->unknown_6C3 = 0; // compiler reuses v1
|
||||
gWeatherPtr->unknown_6C6 = 0; // compiler reuses v1
|
||||
gWeatherPtr->currWeather = gWeatherPtr->unknown_6D1;
|
||||
sWeatherFuncs[gWeatherPtr->nextWeather].initVars();
|
||||
gWeatherPtr->unknown_6C3 = 0;
|
||||
gWeatherPtr->unknown_6C6 = 0;
|
||||
gWeatherPtr->currWeather = gWeatherPtr->nextWeather;
|
||||
gWeatherPtr->unknown_6D3 = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_08396FC8[gWeatherPtr->currWeather].func1();
|
||||
sWeatherFuncs[gWeatherPtr->currWeather].main();
|
||||
}
|
||||
gUnknown_083970B8[gWeatherPtr->unknown_6C6]();
|
||||
}
|
||||
|
||||
void sub_807CAE8(void)
|
||||
void None_Init(void)
|
||||
{
|
||||
gWeatherPtr->unknown_6C1 = 0;
|
||||
gWeatherPtr->unknown_6C2 = 0;
|
||||
}
|
||||
|
||||
void nullsub_38(void)
|
||||
void None_Main(void)
|
||||
{
|
||||
}
|
||||
|
||||
u8 sub_807CB0C(void)
|
||||
u8 None_Finish(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -627,14 +625,14 @@ void sub_807D1BC(u8 a1, u8 a2, s8 c, u8 d, u16 e)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_807D304(s8 a, u8 arg2, u16 c)
|
||||
void sub_807D304(s8 a, u8 coeff, u16 c)
|
||||
{
|
||||
struct RGBColor color;
|
||||
u8 r_;
|
||||
u8 g_;
|
||||
u8 b_;
|
||||
u16 r4;
|
||||
u16 r5;
|
||||
u16 palOffset;
|
||||
u16 r12;
|
||||
|
||||
a = -a - 1;
|
||||
@ -642,13 +640,13 @@ void sub_807D304(s8 a, u8 arg2, u16 c)
|
||||
r_ = color.r;
|
||||
g_ = color.g;
|
||||
b_ = color.b;
|
||||
r5 = 0;
|
||||
palOffset = 0;
|
||||
for (r4 = 0; r4 < 32; r4++)
|
||||
{
|
||||
if (gUnknown_030006DC[r4] == 0)
|
||||
{
|
||||
BlendPalette(r5, 16, arg2, c);
|
||||
r5 += 16;
|
||||
BlendPalette(palOffset, 16, coeff, c);
|
||||
palOffset += 16;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -660,7 +658,7 @@ void sub_807D304(s8 a, u8 arg2, u16 c)
|
||||
u8 r1, g1, b1;
|
||||
u8 r2, g2, b2;
|
||||
|
||||
color1 = *(struct RGBColor *)&gPlttBufferUnfaded[r5];
|
||||
color1 = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
|
||||
r1 = color1.r;
|
||||
g1 = color1.g;
|
||||
b1 = color1.b;
|
||||
@ -671,11 +669,11 @@ void sub_807D304(s8 a, u8 arg2, u16 c)
|
||||
g2 = color2.g;
|
||||
b2 = color2.b;
|
||||
|
||||
r2 += ((r_ - r2) * arg2) >> 4;
|
||||
g2 += ((g_ - g2) * arg2) >> 4;
|
||||
b2 += ((b_ - b2) * arg2) >> 4;
|
||||
r2 += ((r_ - r2) * coeff) >> 4;
|
||||
g2 += ((g_ - g2) * coeff) >> 4;
|
||||
b2 += ((b_ - b2) * coeff) >> 4;
|
||||
|
||||
gPlttBufferFaded[r5++] = (b2 << 10) | (g2 << 5) | r2;
|
||||
gPlttBufferFaded[palOffset++] = (b2 << 10) | (g2 << 5) | r2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -775,28 +773,28 @@ void sub_807D5F0(u8 a, u8 b, u8 c)
|
||||
}
|
||||
}
|
||||
|
||||
void fade_screen(u8 a, u8 b)
|
||||
void fade_screen(u8 a, u8 delay)
|
||||
{
|
||||
u32 r4;
|
||||
u32 fadeColor;
|
||||
u32 r1;
|
||||
u32 r2;
|
||||
|
||||
switch (a)
|
||||
{
|
||||
case 0:
|
||||
r4 = 0;
|
||||
fadeColor = 0;
|
||||
r1 = 0;
|
||||
break;
|
||||
case 2:
|
||||
r4 = 0xFFFF;
|
||||
fadeColor = 0xFFFF;
|
||||
r1 = 0;
|
||||
break;
|
||||
case 1:
|
||||
r4 = 0;
|
||||
fadeColor = 0;
|
||||
r1 = 1;
|
||||
break;
|
||||
case 3:
|
||||
r4 = 0xFFFF;
|
||||
fadeColor = 0xFFFF;
|
||||
r1 = 1;
|
||||
break;
|
||||
default:
|
||||
@ -823,20 +821,20 @@ void fade_screen(u8 a, u8 b)
|
||||
{
|
||||
if (r2 != 0)
|
||||
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, b, 0, 16, r4);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, delay, 0, 16, fadeColor);
|
||||
gWeatherPtr->unknown_6C6 = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
gWeatherPtr->unknown_6C4 = r4;
|
||||
gWeatherPtr->unknown_6C4 = fadeColor;
|
||||
if (r2 != 0)
|
||||
gWeatherPtr->unknown_6C7 = 0;
|
||||
else
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, b, 16, 0, r4);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, delay, 16, 0, fadeColor);
|
||||
gWeatherPtr->unknown_6C6 = 1;
|
||||
gWeatherPtr->unknown_6CA = 1;
|
||||
gWeatherPtr->unknown_6CB = 0;
|
||||
sub_807DB64(gWeatherPtr->unknown_730, gWeatherPtr->unknown_732);
|
||||
Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
|
||||
gWeatherPtr->unknown_6C8 = 1;
|
||||
}
|
||||
}
|
||||
@ -909,7 +907,7 @@ void sub_807D8F0(u8 *a, u8 *b)
|
||||
if (r4 < 7)
|
||||
{
|
||||
r4--;
|
||||
LZ77UnCompWram(gUnknown_08396FA8[r4], eWeatherPaletteData.data[r4]);
|
||||
LZ77UnCompWram(sCompressedDroughtPalettes[r4], eWeatherPaletteData.data[r4]);
|
||||
if (r4 == 0)
|
||||
{
|
||||
eWeatherPaletteData.data[r4][0] = 0x421;
|
||||
@ -921,8 +919,7 @@ void sub_807D8F0(u8 *a, u8 *b)
|
||||
for (i = 0; i < 0x1000; i++)
|
||||
eWeatherPaletteData.data[r4][i] += eWeatherPaletteData.data[r4 - 1][i];
|
||||
}
|
||||
(*a)++;
|
||||
if (*a == 7)
|
||||
if (++(*a) == 7)
|
||||
{
|
||||
*a = 32;
|
||||
*b = 32;
|
||||
@ -997,52 +994,58 @@ void sub_807DA4C(void)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_807DB64(u8 a, u8 b)
|
||||
void Weather_SetBlendCoeffs(u8 eva, u8 evb)
|
||||
{
|
||||
gWeatherPtr->unknown_730 = a;
|
||||
gWeatherPtr->unknown_732 = b;
|
||||
gWeatherPtr->unknown_734 = a;
|
||||
gWeatherPtr->unknown_736 = b;
|
||||
REG_BLDALPHA = (b << 8) | a;
|
||||
gWeatherPtr->currBlendEVA = eva;
|
||||
gWeatherPtr->currBlendEVB = evb;
|
||||
gWeatherPtr->targetBlendEVA = eva;
|
||||
gWeatherPtr->targetBlendEVB = evb;
|
||||
REG_BLDALPHA = BLDALPHA_BLEND(eva, evb);
|
||||
}
|
||||
|
||||
void sub_807DBA4(u8 a, u8 b, int c)
|
||||
void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay)
|
||||
{
|
||||
gWeatherPtr->unknown_734 = a;
|
||||
gWeatherPtr->unknown_736 = b;
|
||||
gWeatherPtr->unknown_73A = c;
|
||||
gWeatherPtr->targetBlendEVA = eva;
|
||||
gWeatherPtr->targetBlendEVB = evb;
|
||||
gWeatherPtr->blendDelay = delay;
|
||||
gWeatherPtr->unknown_739 = 0;
|
||||
gWeatherPtr->unknown_738 = 0;
|
||||
}
|
||||
|
||||
bool8 sub_807DBE8(void)
|
||||
bool8 Weather_UpdateBlend(void)
|
||||
{
|
||||
if (gWeatherPtr->unknown_730 == gWeatherPtr->unknown_734
|
||||
&& gWeatherPtr->unknown_732 == gWeatherPtr->unknown_736)
|
||||
if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA
|
||||
&& gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB)
|
||||
return TRUE;
|
||||
if (++gWeatherPtr->unknown_739 > gWeatherPtr->unknown_73A)
|
||||
|
||||
if (++gWeatherPtr->unknown_739 > gWeatherPtr->blendDelay)
|
||||
{
|
||||
gWeatherPtr->unknown_739 = 0;
|
||||
gWeatherPtr->unknown_738++;
|
||||
|
||||
// Update currBlendEVA and currBlendEVB on alternate frames
|
||||
if (gWeatherPtr->unknown_738 & 1)
|
||||
{
|
||||
if (gWeatherPtr->unknown_730 < gWeatherPtr->unknown_734)
|
||||
gWeatherPtr->unknown_730++;
|
||||
else if (gWeatherPtr->unknown_730 > gWeatherPtr->unknown_734)
|
||||
gWeatherPtr->unknown_730--;
|
||||
if (gWeatherPtr->currBlendEVA < gWeatherPtr->targetBlendEVA)
|
||||
gWeatherPtr->currBlendEVA++;
|
||||
else if (gWeatherPtr->currBlendEVA > gWeatherPtr->targetBlendEVA)
|
||||
gWeatherPtr->currBlendEVA--;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gWeatherPtr->unknown_732 < gWeatherPtr->unknown_736)
|
||||
gWeatherPtr->unknown_732++;
|
||||
else if (gWeatherPtr->unknown_732 > gWeatherPtr->unknown_736)
|
||||
gWeatherPtr->unknown_732--;
|
||||
if (gWeatherPtr->currBlendEVB < gWeatherPtr->targetBlendEVB)
|
||||
gWeatherPtr->currBlendEVB++;
|
||||
else if (gWeatherPtr->currBlendEVB > gWeatherPtr->targetBlendEVB)
|
||||
gWeatherPtr->currBlendEVB--;
|
||||
}
|
||||
}
|
||||
REG_BLDALPHA = (gWeatherPtr->unknown_732 << 8) | gWeatherPtr->unknown_730;
|
||||
if (gWeatherPtr->unknown_730 == gWeatherPtr->unknown_734
|
||||
&& gWeatherPtr->unknown_732 == gWeatherPtr->unknown_736)
|
||||
|
||||
REG_BLDALPHA = BLDALPHA_BLEND(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
|
||||
|
||||
if (gWeatherPtr->currBlendEVA == gWeatherPtr->targetBlendEVA
|
||||
&& gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1737,7 +1737,7 @@ void sub_8054D4C(u32 a1)
|
||||
sub_805C7C4(0);
|
||||
FieldEffectActiveListClear();
|
||||
InitFieldMessageBox();
|
||||
sub_807C828();
|
||||
StartWeather();
|
||||
sub_8080750();
|
||||
if (!a1)
|
||||
SetUpFieldTasks();
|
||||
|
Loading…
x
Reference in New Issue
Block a user