Merge pull request #435 from DizzyEggg/weather

Decompile fieldmap
This commit is contained in:
Marcus Huderle 2018-12-09 07:56:53 -06:00 committed by GitHub
commit 5e09850c17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 5180 additions and 11224 deletions

View File

@ -170,9 +170,9 @@ _0814FDD8:
bl FreeAllSpritePalettes
bl ResetPaletteFade
bl reset_temp_tile_data_buffers
bl sub_80AAFA4
bl StartWeather
movs r4, 0
ldr r0, =gUnknown_0854C14C
ldr r0, =gWeatherPtr
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
@ -334,7 +334,7 @@ _0814FF98:
b _08150224
.pool
_0814FFB4:
ldr r0, =gUnknown_0854C14C
ldr r0, =gWeatherPtr
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
@ -649,7 +649,7 @@ c2_8011A1C: @ 8150258
bl sub_80AB130
add r0, sp, 0x4
mov r8, r0
ldr r0, =gUnknown_0854C14C
ldr r0, =gWeatherPtr
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
@ -831,7 +831,7 @@ _08150422:
b _08150542
_0815042E:
ldrb r0, [r3, 0x2]
bl weather_set
bl ChangeWeather
ldr r1, [r5]
movs r0, 0x1
strb r0, [r1, 0x1]
@ -844,7 +844,7 @@ _0815043C:
beq _08150448
b _08150542
_08150448:
ldr r0, =gUnknown_0854C14C
ldr r0, =gWeatherPtr
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0xF0
@ -881,7 +881,7 @@ _08150478:
b _08150542
.pool
_08150490:
ldr r0, =gUnknown_0854C14C
ldr r0, =gWeatherPtr
ldr r2, [r0]
movs r1, 0xDA
lsls r1, 3
@ -1290,7 +1290,7 @@ _081507B6:
b _081507E6
.pool
_081507DC:
ldr r0, =gUnknown_0854C14C
ldr r0, =gWeatherPtr
ldr r4, [r0]
ldr r0, =0x000006fc
adds r4, r0

File diff suppressed because it is too large Load Diff

View File

@ -1368,7 +1368,7 @@ _0810C0E2:
mov r0, sp
movs r2, 0
bl sub_80A6D60
ldr r0, =gUnknown_0854C270
ldr r0, =gUnknown_083970E8
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4
@ -1650,7 +1650,7 @@ _0810C366:
mov r0, sp
movs r2, 0
bl sub_80A6D60
ldr r0, =gUnknown_0854C270
ldr r0, =gUnknown_083970E8
mov r1, sp
ldrb r1, [r1, 0x8]
lsls r1, 4

View File

@ -1,492 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_0854014C:: @ 854014C
.incbin "graphics/misc/sunny_day/0.gbapal"
.incbin "graphics/misc/sunny_day/1.gbapal"
.incbin "graphics/misc/sunny_day/2.gbapal"
.incbin "graphics/misc/sunny_day/3.gbapal"
.incbin "graphics/misc/sunny_day/4.gbapal"
.incbin "graphics/misc/sunny_day/5.gbapal"
.incbin "graphics/misc/sunny_day/6.gbapal"
.incbin "graphics/misc/sunny_day/7.gbapal"
.incbin "graphics/misc/sunny_day/8.gbapal"
.incbin "graphics/misc/sunny_day/9.gbapal"
.incbin "graphics/misc/sunny_day/10.gbapal"
.incbin "graphics/misc/sunny_day/11.gbapal"
.incbin "graphics/misc/sunny_day/12.gbapal"
.incbin "graphics/misc/sunny_day/13.gbapal"
.incbin "graphics/misc/sunny_day/14.gbapal"
.incbin "graphics/misc/sunny_day/15.gbapal"
.incbin "graphics/misc/sunny_day/16.gbapal"
.incbin "graphics/misc/sunny_day/17.gbapal"
.incbin "graphics/misc/sunny_day/18.gbapal"
.incbin "graphics/misc/sunny_day/19.gbapal"
.incbin "graphics/misc/sunny_day/20.gbapal"
.incbin "graphics/misc/sunny_day/21.gbapal"
.incbin "graphics/misc/sunny_day/22.gbapal"
.incbin "graphics/misc/sunny_day/23.gbapal"
.incbin "graphics/misc/sunny_day/24.gbapal"
.incbin "graphics/misc/sunny_day/25.gbapal"
.incbin "graphics/misc/sunny_day/26.gbapal"
.incbin "graphics/misc/sunny_day/27.gbapal"
.incbin "graphics/misc/sunny_day/28.gbapal"
.incbin "graphics/misc/sunny_day/29.gbapal"
.incbin "graphics/misc/sunny_day/30.gbapal"
.incbin "graphics/misc/sunny_day/31.gbapal"
.incbin "graphics/misc/sunny_day/32.gbapal"
.incbin "graphics/misc/sunny_day/33.gbapal"
.incbin "graphics/misc/sunny_day/34.gbapal"
.incbin "graphics/misc/sunny_day/35.gbapal"
.incbin "graphics/misc/sunny_day/36.gbapal"
.incbin "graphics/misc/sunny_day/37.gbapal"
.incbin "graphics/misc/sunny_day/38.gbapal"
.incbin "graphics/misc/sunny_day/39.gbapal"
.incbin "graphics/misc/sunny_day/40.gbapal"
.incbin "graphics/misc/sunny_day/41.gbapal"
.incbin "graphics/misc/sunny_day/42.gbapal"
.incbin "graphics/misc/sunny_day/43.gbapal"
.incbin "graphics/misc/sunny_day/44.gbapal"
.incbin "graphics/misc/sunny_day/45.gbapal"
.incbin "graphics/misc/sunny_day/46.gbapal"
.incbin "graphics/misc/sunny_day/47.gbapal"
.incbin "graphics/misc/sunny_day/48.gbapal"
.incbin "graphics/misc/sunny_day/49.gbapal"
.incbin "graphics/misc/sunny_day/50.gbapal"
.incbin "graphics/misc/sunny_day/51.gbapal"
.incbin "graphics/misc/sunny_day/52.gbapal"
.incbin "graphics/misc/sunny_day/53.gbapal"
.incbin "graphics/misc/sunny_day/54.gbapal"
.incbin "graphics/misc/sunny_day/55.gbapal"
.incbin "graphics/misc/sunny_day/56.gbapal"
.incbin "graphics/misc/sunny_day/57.gbapal"
.incbin "graphics/misc/sunny_day/58.gbapal"
.incbin "graphics/misc/sunny_day/59.gbapal"
.incbin "graphics/misc/sunny_day/60.gbapal"
.incbin "graphics/misc/sunny_day/61.gbapal"
.incbin "graphics/misc/sunny_day/62.gbapal"
.incbin "graphics/misc/sunny_day/63.gbapal"
.incbin "graphics/misc/sunny_day/64.gbapal"
.incbin "graphics/misc/sunny_day/65.gbapal"
.incbin "graphics/misc/sunny_day/66.gbapal"
.incbin "graphics/misc/sunny_day/67.gbapal"
.incbin "graphics/misc/sunny_day/68.gbapal"
.incbin "graphics/misc/sunny_day/69.gbapal"
.incbin "graphics/misc/sunny_day/70.gbapal"
.incbin "graphics/misc/sunny_day/71.gbapal"
.incbin "graphics/misc/sunny_day/72.gbapal"
.incbin "graphics/misc/sunny_day/73.gbapal"
.incbin "graphics/misc/sunny_day/74.gbapal"
.incbin "graphics/misc/sunny_day/75.gbapal"
.incbin "graphics/misc/sunny_day/76.gbapal"
.incbin "graphics/misc/sunny_day/77.gbapal"
.incbin "graphics/misc/sunny_day/78.gbapal"
.incbin "graphics/misc/sunny_day/79.gbapal"
.incbin "graphics/misc/sunny_day/80.gbapal"
.incbin "graphics/misc/sunny_day/81.gbapal"
.incbin "graphics/misc/sunny_day/82.gbapal"
.incbin "graphics/misc/sunny_day/83.gbapal"
.incbin "graphics/misc/sunny_day/84.gbapal"
.incbin "graphics/misc/sunny_day/85.gbapal"
.incbin "graphics/misc/sunny_day/86.gbapal"
.incbin "graphics/misc/sunny_day/87.gbapal"
.incbin "graphics/misc/sunny_day/88.gbapal"
.incbin "graphics/misc/sunny_day/89.gbapal"
.incbin "graphics/misc/sunny_day/90.gbapal"
.incbin "graphics/misc/sunny_day/91.gbapal"
.incbin "graphics/misc/sunny_day/92.gbapal"
.incbin "graphics/misc/sunny_day/93.gbapal"
.incbin "graphics/misc/sunny_day/94.gbapal"
.incbin "graphics/misc/sunny_day/95.gbapal"
.align 2
gUnknown_0854C14C:: @ 854C14C
.4byte gUnknown_02038454
.align 2
gUnknown_0854C150:: @ 854C150
.4byte sub_80AB26C
.4byte nullsub_36
.4byte sub_80AB26C
.4byte sub_80AB290
.4byte sub_80AC438
.4byte sub_80AC4B4
.4byte sub_80AC484
.4byte sub_80AC514
.4byte sub_80AC55C
.4byte nullsub_95
.4byte sub_80AC580
.4byte sub_80AC590
.4byte sub_80AC928
.4byte sub_80AC9C4
.4byte sub_80AC994
.4byte sub_80ACA24
.4byte sub_80ACF8C
.4byte snowflakes_progress2
.4byte sub_80ACFDC
.4byte sub_80AD084
.4byte sub_80AD444
.4byte sub_80AD584
.4byte sub_80AD4B8
.4byte sub_80AD910
.4byte sub_80ADA60
.4byte sub_80ADAF0
.4byte sub_80ADAC0
.4byte sub_80ADBB0
.4byte sub_80ADDBC
.4byte sub_80ADE48
.4byte sub_80ADE18
.4byte sub_80ADEF4
.4byte sub_80AE45C
.4byte sub_80AE50C
.4byte sub_80AE4DC
.4byte sub_80AE588
.4byte sub_80AE0E4
.4byte sub_80AE198
.4byte sub_80AE168
.4byte sub_80AE1FC
.4byte sub_80ADA60
.4byte sub_80ADAF0
.4byte sub_80ADAC0
.4byte sub_80ADBB0
.4byte sub_80AE9F0
.4byte nullsub_96
.4byte sub_80AEA20
.4byte sub_80AEA30
.4byte sub_80AC6D0
.4byte sub_80AC734
.4byte sub_80AC704
.4byte sub_80AC818
.4byte sub_80AD4E8
.4byte sub_80AD584
.4byte sub_80AD554
.4byte sub_80AD910
.4byte sub_80AEA34
.4byte sub_80AEAB8
.4byte sub_80AEA88
.4byte sub_80AEB2C
.align 2
gUnknown_0854C240:: @ 854C240
.4byte sub_80AB3A8
.4byte sub_80AB434
.4byte nullsub_94
.4byte nullsub_94
.align 2
gUnknown_0854C250:: @ 854C250
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01
.align 2
gUnknown_0854C270:: @ 854C270
.incbin "graphics/weather/0.gbapal"
.align 2
gUnknown_0854C290:: @ 854C290
.incbin "graphics/weather/1.gbapal"
.align 2
gUnknown_0854C2B0:: @ 854C2B0
.incbin "graphics/weather/2.gbapal"
.align 2
gWeatherFog2Tiles:: @ 854C2D0
.incbin "graphics/weather/fog2.4bpp"
.align 2
gWeatherFog1Tiles:: @ 854CAD0
.incbin "graphics/weather/fog1.4bpp"
.align 2
gWeatherCloudTiles:: @ 854D2D0
.incbin "graphics/weather/cloud.4bpp"
.align 2
gWeatherSnow1Tiles:: @ 854DAD0
.incbin "graphics/weather/snow0.4bpp"
.align 2
gWeatherSnow2Tiles:: @ 854DAF0
.incbin "graphics/weather/snow1.4bpp"
.align 2
gWeatherBubbleTiles:: @ 854DB10
.incbin "graphics/weather/bubble.4bpp"
.align 2
gWeatherAshTiles:: @ 854DB50
.incbin "graphics/weather/ash.4bpp"
.align 2
gWeatherRainTiles:: @ 854EB50
.incbin "graphics/weather/rain.4bpp"
.align 2
gWeatherSandstormTiles:: @ 854F150
.incbin "graphics/weather/sandstorm.4bpp"
.align 1
gUnknown_0854FB50:: @ 854FB50
.2byte 0x0000, 0x0042, 0x0005, 0x0049, 0x000a, 0x004e
.align 2
sCloudSpriteSheet:: @ 854FB5C
obj_tiles gWeatherCloudTiles, 0x0800, 0x1200
.align 2
gOamData_854FB64:: @ 854FB64
.2byte 0x0400, 0xc000, 0x0c00, 0x0000
.align 2
gSpriteAnim_854FB6C:: @ 854FB6C
.2byte 0x0000, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnimTable_854FB74:: @ 854FB74
.4byte gSpriteAnim_854FB6C
.align 2
sCloudSpriteTemplate:: @ 854FB78
spr_template 0x1200, 0x1201, gOamData_854FB64, gSpriteAnimTable_854FB74, NULL, gDummySpriteAffineAnimTable, sub_80AC6B4
.align 2
gUnknown_0854FB90:: @ 854FB90
.2byte 0x0000, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0040, 0x0090, 0x00e0, 0x0090, 0x0080, 0x0020, 0x0020, 0x0020, 0x00c0, 0x0020, 0x0060
.2byte 0x0048, 0x0080, 0x0048, 0x0020, 0x0048, 0x00c0, 0x00d8, 0x0060, 0x00d8, 0x0000, 0x0068, 0x00a0, 0x0068, 0x0040, 0x0068, 0x00e0
.2byte 0x0090, 0x0000, 0x0090, 0x00a0, 0x0090, 0x0040, 0x0020, 0x00e0, 0x0020, 0x0080, 0x0048, 0x0020, 0x0048, 0x00c0, 0x0030, 0x0060
.align 2
gOamData_854FBF0:: @ 854FBF0
.2byte 0x8000, 0x8000, 0x2400, 0x0000
.align 2
gSpriteAnim_854FBF8:: @ 854FBF8
.2byte 0x0000, 0x0010, 0xfffe, 0x0000
.align 2
gSpriteAnim_854FC00:: @ 854FC00
.2byte 0x0008, 0x0003, 0x0020, 0x0002, 0x0028, 0x0002, 0xffff, 0x0000
.align 2
gSpriteAnim_854FC10:: @ 854FC10
.2byte 0x0008, 0x0003, 0x0010, 0x0003, 0x0018, 0x0004, 0xffff, 0x0000
.align 2
gSpriteAnimTable_854FC20:: @ 854FC20
.4byte gSpriteAnim_854FBF8
.4byte gSpriteAnim_854FC00
.4byte gSpriteAnim_854FC10
.align 2
gSpriteTemplate_854FC2C:: @ 854FC2C
spr_template 0x1206, 0x1200, gOamData_854FBF0, gSpriteAnimTable_854FC20, NULL, gDummySpriteAffineAnimTable, sub_80ACB84
.align 1
gUnknown_0854FC44:: @ 854FC44
.2byte 0xff98, 0x00d0, 0xff60, 0x0140
.align 1
gUnknown_0854FC4C:: @ 854FC4C
.2byte 0x0012, 0x0007, 0x000c, 0x000a
.align 2
gUnknown_0854FC54:: @ 854FC54
obj_tiles gWeatherRainTiles, 0x0600, 0x1206
.align 2
gOamData_854FC5C:: @ 854FC5C
.2byte 0x0000, 0x0000, 0x0400, 0x0000
.align 2
gUnknown_0854FC64:: @ 854FC64
obj_frame_tiles gWeatherSnow1Tiles, 0x0020
obj_frame_tiles gWeatherSnow2Tiles, 0x0020
.align 2
gSpriteAnim_854FC74:: @ 854FC74
.2byte 0x0000, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnim_854FC7C:: @ 854FC7C
.2byte 0x0001, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnimTable_854FC84:: @ 854FC84
.4byte gSpriteAnim_854FC74
.4byte gSpriteAnim_854FC7C
.align 2
gUnknown_0854FC8C:: @ 854FC8C
spr_template 0xffff, 0x1200, gOamData_854FC5C, gSpriteAnimTable_854FC84, gUnknown_0854FC64, gDummySpriteAffineAnimTable, sub_80AD30C
.align 2
gUnknown_0854FCA4:: @ 854FCA4
.2byte 0x0000, 0x0006, 0x0006, 0x000c, 0x0012, 0x002a, 0x012c, 0x012c
.align 2
gOamData_854FCB4:: @ 854FCB4
.2byte 0x0400, 0xc000, 0x0800, 0x0000
.align 2
gSpriteAnim_854FCBC:: @ 854FCBC
.2byte 0x0000, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnim_854FCC4:: @ 854FCC4
.2byte 0x0020, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnim_854FCCC:: @ 854FCCC
.2byte 0x0040, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnim_854FCD4:: @ 854FCD4
.2byte 0x0060, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnim_854FCDC:: @ 854FCDC
.2byte 0x0080, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnim_854FCE4:: @ 854FCE4
.2byte 0x00a0, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnimTable_854FCEC:: @ 854FCEC
.4byte gSpriteAnim_854FCBC
.4byte gSpriteAnim_854FCC4
.4byte gSpriteAnim_854FCCC
.4byte gSpriteAnim_854FCD4
.4byte gSpriteAnim_854FCDC
.4byte gSpriteAnim_854FCE4
.align 2
gSpriteAffineAnim_854FD04:: @ 854FD04
.2byte 0x0200, 0x0200, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gSpriteAffineAnimTable_854FD14:: @ 854FD14
.4byte gSpriteAffineAnim_854FD04
.align 2
gSpriteTemplate_854FD18:: @ 854FD18
spr_template 0x1201, 0x1200, gOamData_854FCB4, gSpriteAnimTable_854FCEC, NULL, gSpriteAffineAnimTable_854FD14, sub_80ADC4C
.align 2
gUnknown_0854FD30:: @ 854FD30
obj_tiles gWeatherFog1Tiles, 0x0800, 0x1201
.align 2
gUnknown_0854FD38:: @ 854FD38
obj_tiles gWeatherAshTiles, 0x1000, 0x1202
.align 2
gOamData_854FD40:: @ 854FD40
.2byte 0x0400, 0xc000, 0xf400, 0x0000
.align 2
gSpriteAnim_854FD48:: @ 854FD48
.2byte 0x0000, 0x003c, 0x0040, 0x003c, 0xfffe, 0x0000
.align 2
gSpriteAnimTable_854FD54:: @ 854FD54
.4byte gSpriteAnim_854FD48
.align 2
gSpriteTemplate_854FD58:: @ 854FD58
spr_template 0x1202, 0x1200, gOamData_854FD40, gSpriteAnimTable_854FD54, NULL, gDummySpriteAffineAnimTable, sub_80AE068
.align 2
gUnknown_0854FD70:: @ 854FD70
obj_tiles gWeatherFog2Tiles, 0x0800, 0x1203
.align 2
gOamData_854FD78:: @ 854FD78
.2byte 0x0400, 0xc000, 0x0800, 0x0000
.align 2
gSpriteAnim_854FD80:: @ 854FD80
.2byte 0x0000, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnimTable_854FD88:: @ 854FD88
.4byte gSpriteAnim_854FD80
.align 2
gSpriteTemplate_854FD8C:: @ 854FD8C
spr_template 0x1203, 0x1200, gOamData_854FD78, gSpriteAnimTable_854FD88, NULL, gDummySpriteAffineAnimTable, sub_80AE3FC
.align 2
gOamData_854FDA4:: @ 854FDA4
.2byte 0x0400, 0xc000, 0x0400, 0x0000
.align 2
gSpriteAnim_854FDAC:: @ 854FDAC
.2byte 0x0000, 0x0003, 0xffff, 0x0000
.align 2
gSpriteAnim_854FDB4:: @ 854FDB4
.2byte 0x0040, 0x0003, 0xffff, 0x0000
.align 2
gSpriteAnimTable_854FDBC:: @ 854FDBC
.4byte gSpriteAnim_854FDAC
.4byte gSpriteAnim_854FDB4
.align 2
gSpriteTemplate_854FDC4:: @ 854FDC4
spr_template 0x1204, 0x1201, gOamData_854FDA4, gSpriteAnimTable_854FDBC, NULL, gDummySpriteAffineAnimTable, sub_80AE8F8
.align 2
gUnknown_0854FDDC:: @ 854FDDC
obj_tiles gWeatherSandstormTiles, 0x0a00, 0x1204
.align 1
gUnknown_0854FDE4:: @ 854FDE4
.2byte 0x0000, 0x0078, 0x0050, 0x00a0, 0x0028, 0x0000
gUnknown_0854FDF0:: @ 854FDF0
.byte 0x28, 0x5a, 0x3c, 0x5a, 0x02, 0x3c, 0x28, 0x1e
.align 2
gUnknown_0854FDF8:: @ 854FDF8
obj_tiles gWeatherBubbleTiles, 0x0040, 0x1205
.align 1
gUnknown_0854FE00:: @ 854FE00
.2byte 0x0078, 0x00a0, 0x0178, 0x00a0, 0x0028, 0x008c, 0x0128, 0x008c, 0x00b4, 0x0082, 0x01b4, 0x0082, 0x003c, 0x00a0, 0x01b4, 0x00a0
.2byte 0x00dc, 0x00b4, 0x01dc, 0x00b4, 0x000a, 0x005a, 0x010a, 0x005a, 0x0100, 0x00a0
.align 2
gSpriteAnim_854FE34:: @ 854FE34
.2byte 0x0000, 0x0010, 0x0001, 0x0010, 0xffff, 0x0000
.align 2
gSpriteAnimTable_854FE40:: @ 854FE40
.4byte gSpriteAnim_854FE34
.align 2
gSpriteTemplate_854FE44:: @ 854FE44
spr_template 0x1205, 0x1200, gUnknown_08524904, gSpriteAnimTable_854FE40, NULL, gDummySpriteAffineAnimTable, sub_80AEC34
gUnknown_0854FE5C:: @ 854FE5C
.byte 0x02, 0x03, 0x05, 0x03
gUnknown_0854FE60:: @ 854FE60
.byte 0x02, 0x02, 0x03, 0x02
.align 1
gUnknown_0854FE64:: @ 854FE64
.2byte 0x00c8, 0x0048, 0x0040, 0x0038, 0x0030, 0x0028, 0x0020, 0x0018, 0x0000, 0x0000
.align 2
gMaxFlashLevel:: @ 854FE78
.4byte 0x00000008
.align 2
gUnknown_0854FE7C:: @ 854FE7C
.4byte 0x04000040, 0xa2600001, 0x00000001

103
data/field_weather.s Normal file
View File

@ -0,0 +1,103 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_0854014C:: @ 854014C
.incbin "graphics/misc/sunny_day/0.gbapal"
.incbin "graphics/misc/sunny_day/1.gbapal"
.incbin "graphics/misc/sunny_day/2.gbapal"
.incbin "graphics/misc/sunny_day/3.gbapal"
.incbin "graphics/misc/sunny_day/4.gbapal"
.incbin "graphics/misc/sunny_day/5.gbapal"
.incbin "graphics/misc/sunny_day/6.gbapal"
.incbin "graphics/misc/sunny_day/7.gbapal"
.incbin "graphics/misc/sunny_day/8.gbapal"
.incbin "graphics/misc/sunny_day/9.gbapal"
.incbin "graphics/misc/sunny_day/10.gbapal"
.incbin "graphics/misc/sunny_day/11.gbapal"
.incbin "graphics/misc/sunny_day/12.gbapal"
.incbin "graphics/misc/sunny_day/13.gbapal"
.incbin "graphics/misc/sunny_day/14.gbapal"
.incbin "graphics/misc/sunny_day/15.gbapal"
.incbin "graphics/misc/sunny_day/16.gbapal"
.incbin "graphics/misc/sunny_day/17.gbapal"
.incbin "graphics/misc/sunny_day/18.gbapal"
.incbin "graphics/misc/sunny_day/19.gbapal"
.incbin "graphics/misc/sunny_day/20.gbapal"
.incbin "graphics/misc/sunny_day/21.gbapal"
.incbin "graphics/misc/sunny_day/22.gbapal"
.incbin "graphics/misc/sunny_day/23.gbapal"
.incbin "graphics/misc/sunny_day/24.gbapal"
.incbin "graphics/misc/sunny_day/25.gbapal"
.incbin "graphics/misc/sunny_day/26.gbapal"
.incbin "graphics/misc/sunny_day/27.gbapal"
.incbin "graphics/misc/sunny_day/28.gbapal"
.incbin "graphics/misc/sunny_day/29.gbapal"
.incbin "graphics/misc/sunny_day/30.gbapal"
.incbin "graphics/misc/sunny_day/31.gbapal"
.incbin "graphics/misc/sunny_day/32.gbapal"
.incbin "graphics/misc/sunny_day/33.gbapal"
.incbin "graphics/misc/sunny_day/34.gbapal"
.incbin "graphics/misc/sunny_day/35.gbapal"
.incbin "graphics/misc/sunny_day/36.gbapal"
.incbin "graphics/misc/sunny_day/37.gbapal"
.incbin "graphics/misc/sunny_day/38.gbapal"
.incbin "graphics/misc/sunny_day/39.gbapal"
.incbin "graphics/misc/sunny_day/40.gbapal"
.incbin "graphics/misc/sunny_day/41.gbapal"
.incbin "graphics/misc/sunny_day/42.gbapal"
.incbin "graphics/misc/sunny_day/43.gbapal"
.incbin "graphics/misc/sunny_day/44.gbapal"
.incbin "graphics/misc/sunny_day/45.gbapal"
.incbin "graphics/misc/sunny_day/46.gbapal"
.incbin "graphics/misc/sunny_day/47.gbapal"
.incbin "graphics/misc/sunny_day/48.gbapal"
.incbin "graphics/misc/sunny_day/49.gbapal"
.incbin "graphics/misc/sunny_day/50.gbapal"
.incbin "graphics/misc/sunny_day/51.gbapal"
.incbin "graphics/misc/sunny_day/52.gbapal"
.incbin "graphics/misc/sunny_day/53.gbapal"
.incbin "graphics/misc/sunny_day/54.gbapal"
.incbin "graphics/misc/sunny_day/55.gbapal"
.incbin "graphics/misc/sunny_day/56.gbapal"
.incbin "graphics/misc/sunny_day/57.gbapal"
.incbin "graphics/misc/sunny_day/58.gbapal"
.incbin "graphics/misc/sunny_day/59.gbapal"
.incbin "graphics/misc/sunny_day/60.gbapal"
.incbin "graphics/misc/sunny_day/61.gbapal"
.incbin "graphics/misc/sunny_day/62.gbapal"
.incbin "graphics/misc/sunny_day/63.gbapal"
.incbin "graphics/misc/sunny_day/64.gbapal"
.incbin "graphics/misc/sunny_day/65.gbapal"
.incbin "graphics/misc/sunny_day/66.gbapal"
.incbin "graphics/misc/sunny_day/67.gbapal"
.incbin "graphics/misc/sunny_day/68.gbapal"
.incbin "graphics/misc/sunny_day/69.gbapal"
.incbin "graphics/misc/sunny_day/70.gbapal"
.incbin "graphics/misc/sunny_day/71.gbapal"
.incbin "graphics/misc/sunny_day/72.gbapal"
.incbin "graphics/misc/sunny_day/73.gbapal"
.incbin "graphics/misc/sunny_day/74.gbapal"
.incbin "graphics/misc/sunny_day/75.gbapal"
.incbin "graphics/misc/sunny_day/76.gbapal"
.incbin "graphics/misc/sunny_day/77.gbapal"
.incbin "graphics/misc/sunny_day/78.gbapal"
.incbin "graphics/misc/sunny_day/79.gbapal"
.incbin "graphics/misc/sunny_day/80.gbapal"
.incbin "graphics/misc/sunny_day/81.gbapal"
.incbin "graphics/misc/sunny_day/82.gbapal"
.incbin "graphics/misc/sunny_day/83.gbapal"
.incbin "graphics/misc/sunny_day/84.gbapal"
.incbin "graphics/misc/sunny_day/85.gbapal"
.incbin "graphics/misc/sunny_day/86.gbapal"
.incbin "graphics/misc/sunny_day/87.gbapal"
.incbin "graphics/misc/sunny_day/88.gbapal"
.incbin "graphics/misc/sunny_day/89.gbapal"
.incbin "graphics/misc/sunny_day/90.gbapal"
.incbin "graphics/misc/sunny_day/91.gbapal"
.incbin "graphics/misc/sunny_day/92.gbapal"
.incbin "graphics/misc/sunny_day/93.gbapal"
.incbin "graphics/misc/sunny_day/94.gbapal"
.incbin "graphics/misc/sunny_day/95.gbapal"

View File

@ -16,6 +16,7 @@
#define WEATHER_DROUGHT 12
#define WEATHER_RAIN_HEAVY 13
#define WEATHER_BUBBLES 14
#define WEATHER_15 15
#define WEATHER_ROUTE119_CYCLE 20
#define WEATHER_ROUTE123_CYCLE 21

View File

@ -1,12 +0,0 @@
#ifndef GUARD_FIELD_FADETRANSITION_H
#define GUARD_FIELD_FADETRANSITION_H
void sub_80AF734(void);
void sp13E_warp_to_last_warp(void);
void sub_80AF7D0(void);
void sp13F_fall_to_last_warp(void);
void sub_80AF848(void);
void sub_80AF87C(void);
#endif // GUARD_FIELD_FADETRANSITION_H

View File

@ -1,24 +0,0 @@
#ifndef GUARD_FIELD_SCREEN_H
#define GUARD_FIELD_SCREEN_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void pal_fill_black(void);
bool8 IsWeatherNotFadingIn(void);
void sub_80AF168(void);
void sub_80AF2B4(u8 taskId);
void UpdateWeatherPerDay(u16 days);
void sub_80AC3D0(void);
void sub_80AC3E4(void);
void PreservePaletteInWeather(u8);
void sub_80AF128(void);
void sub_80AB104(u8);
void sub_80AF80C(u8);
void sub_80AF828(void);
void sub_80AF838(void);
void sub_80B0268(void);
#endif //GUARD_FIELD_SCREEN_H

View File

@ -1,8 +1,44 @@
#ifndef GUARD_FIELD_SCREEN_EFFECT_H
#define GUARD_FIELD_SCREEN_EFFECT_H
void pal_fill_for_maplights(void);
void pal_fill_black(void);
void WarpFadeScreen(void);
void sub_80AF128(void);
void sub_80AF168(void);
void sub_80AF188(void);
void sub_80AF214(void);
void sub_80AF2B4(u8 taskId);
void sub_80AF314(void);
void mapldr_default(void);
void sub_80AF3B0(void);
void sub_80AF3C8(void);
void sub_80AF3E8(void);
void sub_80AF40C(void);
void sub_80AF688(void);
bool8 sub_80AF6A4(void);
void sub_80AF6D4(void);
void sub_80AF6F0(void);
void sub_80AF734(void);
void sp13E_warp_to_last_warp(void);
void sub_80AF79C(void);
void sub_80B009C(u8);
void sub_80AF7D0(void);
void sp13F_fall_to_last_warp(void);
void sub_80AF80C(u8 metatileBehavior);
void sub_80AF828(void);
void sub_80AF838(void);
void sub_80AF848(void);
void sub_80AF87C(void);
void sub_80AF8B8(void);
void sub_80AF948(void);
void sub_80AF9F8(void);
void sub_80AFC60(void);
void sub_80B009C(u8 flashLevel);
void door_upload_tiles(void);
void sub_80B0244(void);
void sub_80B0268(void);
void sub_80B0534(void);
void sub_80B058C(void);
void sub_80B05B4(void);
#endif // GUARD_FIELD_SCREEN_EFFECT_H

View File

@ -4,13 +4,23 @@
#include "sprite.h"
// Controls how the weather should be changing the screen palettes.
enum {
enum
{
WEATHER_PAL_STATE_CHANGING_WEATHER,
WEATHER_PAL_STATE_SCREEN_FADING_IN,
WEATHER_PAL_STATE_SCREEN_FADING_OUT,
WEATHER_PAL_STATE_IDLE,
};
// For the FadeScreen function.
enum
{
FADE_FROM_BLACK,
FADE_TO_BLACK,
FADE_FROM_WHITE,
FADE_TO_WHITE,
};
struct Weather
{
union
@ -38,11 +48,11 @@ struct Weather
u8 gammaStepDelay;
u8 gammaStepFrameCounter;
u16 fadeDestColor;
u8 palProcessingState;
u8 fadeScreenCounter;
bool8 readyForInit;
u8 taskId;
u8 unknown_6CA;
/*0x6C6*/ u8 palProcessingState;
/*0x6C7*/ u8 fadeScreenCounter;
/*0x6C8*/ bool8 readyForInit;
/*0x6C9*/ u8 taskId;
/*0x6CA*/ u8 unknown_6CA;
u8 unknown_6CB;
u16 initStep;
u16 finishStep;
@ -121,57 +131,103 @@ struct Weather
u8 loadDroughtPalsOffset;
};
void StartWeather(void);
void ChangeWeather(u8 weather);
void sub_807C988(u8 effect);
void sub_807C9B4(u8 effect);
void Task_WeatherInit(u8);
void Task_WeatherMain(u8);
void sub_807CAE8(void);
void nullsub_38(void);
void SetWeatherScreenFadeOut(void);
enum
{
FADE_FROM_BLACK,
FADE_TO_BLACK,
FADE_FROM_WHITE,
FADE_TO_WHITE,
};
void FadeScreen(u8, s8);
// ...
void UpdateSpritePaletteWithWeather(u8 tag);
void ApplyWeatherGammaShiftToPal(u8);
// ...
void Weather_SetBlendCoeffs(u8, u8);
// ...
void PlayRainSoundEffect(void);
// ...
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
void sub_80AEDBC(void);
void SetSav1WeatherFromCurrMapHeader(void);
// ...
void DoCurrentWeather(void);
void sub_8080750(void);
bool8 IsWeatherNotFadingIn(void);
bool8 IsWeatherChangeComplete(void);
void SetWeather(u32);
void UpdateWeatherPerDay(u16);
void PreservePaletteInWeather(u8 index);
void ResetPreservedPalettesInWeather(void);
extern void ResetDroughtWeatherPaletteLoading(void);
void ResetDroughtWeatherPaletteLoading(void);
bool8 LoadDroughtWeatherPalettes(void);
u8 GetCurrentWeather(void);
void LoadCustomWeatherSpritePalette(const u16 *palette);
// field_weather.c
extern struct Weather gWeather;
extern struct Weather *const gWeatherPtr;
void StartWeather(void);
void ChangeWeather(u8 weather);
void sub_80AB104(u8 weather);
void sub_80AB130(u8 weather);
void sub_80ABC48(s8 gammaIndex);
void sub_80ABC7C(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay);
void FadeScreen(u8 mode, s8 delay);
bool8 IsWeatherNotFadingIn(void);
void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex);
void ApplyWeatherGammaShiftToPal(u8 paletteIndex);
u8 sub_80ABF20(void);
void LoadCustomWeatherSpritePalette(const u16 *palette);
void ResetDroughtWeatherPaletteLoading(void);
bool8 LoadDroughtWeatherPalettes(void);
void sub_80ABFE0(s8 gammaIndex);
void sub_80ABFF0(void);
void sub_80AC01C(void);
void Weather_SetBlendCoeffs(u8 eva, u8 evb);
void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay);
bool8 Weather_UpdateBlend(void);
void sub_80AC274(u8 a);
u8 GetCurrentWeather(void);
void SetRainStrengthFromSoundEffect(u16 soundEffect);
void PlayRainSoundEffect(void);
u8 IsWeatherChangeComplete(void);
void SetWeatherScreenFadeOut(void);
void sub_80AC3E4(void);
void PreservePaletteInWeather(u8 preservedPalIndex);
void ResetPreservedPalettesInWeather(void);
// field_weather_effect.c
void Clouds_InitVars(void);
void Clouds_Main(void);
void Clouds_InitAll(void);
bool8 Clouds_Finish(void);
void Weather2_InitVars(void);
void Weather2_Main(void);
void Weather2_InitAll(void);
bool8 Weather2_Finish(void);
void LightRain_InitVars(void);
void LightRain_Main(void);
void LightRain_InitAll(void);
bool8 LightRain_Finish(void);
void Snow_InitVars(void);
void Snow_Main(void);
void Snow_InitAll(void);
bool8 Snow_Finish(void);
void MedRain_InitVars(void);
void Rain_Main(void);
void MedRain_InitAll(void);
bool8 Rain_Finish(void);
void Fog1_InitVars(void);
void Fog1_Main(void);
void Fog1_InitAll(void);
bool8 Fog1_Finish(void);
void Ash_InitVars(void);
void Ash_Main(void);
void Ash_InitAll(void);
bool8 Ash_Finish(void);
void Sandstorm_InitVars(void);
void Sandstorm_Main(void);
void Sandstorm_InitAll(void);
bool8 Sandstorm_Finish(void);
void Fog2_InitVars(void);
void Fog2_Main(void);
void Fog2_InitAll(void);
bool8 Fog2_Finish(void);
void Fog1_InitVars(void);
void Fog1_Main(void);
void Fog1_InitAll(void);
bool8 Fog1_Finish(void);
void Shade_InitVars(void);
void Shade_Main(void);
void Shade_InitAll(void);
bool8 Shade_Finish(void);
void Drought_InitVars(void);
void Drought_Main(void);
void Drought_InitAll(void);
bool8 Drought_Finish(void);
void HeavyRain_InitVars(void);
void Rain_Main(void);
void HeavyRain_InitAll(void);
bool8 Rain_Finish(void);
void Bubbles_InitVars(void);
void Bubbles_Main(void);
void Bubbles_InitAll(void);
bool8 Bubbles_Finish(void);
u8 GetSav1Weather(void);
void SetSav1Weather(u32 weather);
void SetSav1WeatherFromCurrMapHeader(void);
void SetWeather(u32 weather);
void DoCurrentWeather(void);
void UpdateWeatherPerDay(u16 increment);
#endif // GUARD_WEATHER_H

View File

@ -881,7 +881,7 @@ struct SaveBlock1
/*0x24*/ struct WarpData warp4;
/*0x2C*/ u16 savedMusic;
/*0x2E*/ u8 weather;
/*0x2F*/ u8 filler_2F;
/*0x2F*/ u8 weatherCycleStage;
/*0x30*/ u8 flashLevel;
/*0x32*/ u16 mapLayoutId;
/*0x34*/ u16 mapView[0x100];

View File

@ -36,6 +36,7 @@ u32 GetPlayerTextSpeed(void);
u8 GetPlayerTextSpeedDelay(void);
void sub_81978B0(u16 arg0);
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
void sub_8199DF0(u32 bg, u8 a1, int a2, int a3);
void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);

View File

@ -91,7 +91,7 @@ void Overworld_ClearSavedMusic(void);
void Overworld_ChangeMusicToDefault(void);
void Overworld_ChangeMusicTo(u16 newMusic);
u8 GetMapMusicFadeoutSpeed(void);
void music_something(void);
void TryFadeOutOldMapMusic(void);
bool8 BGMusicStopped(void);
void Overworld_FadeOutMapMusic(void);
void UpdateAmbientCry(s16 *state, u16 *delayCounter);

View File

@ -113,7 +113,9 @@ SECTIONS {
src/reshow_battle_screen.o(.text);
src/battle_anim_80A9C70.o(.text);
src/title_screen.o(.text);
asm/field_screen.o(.text);
src/field_weather.o(.text);
src/field_weather_effect.o(.text);
src/field_screen_effect.o(.text);
src/battle_setup.o(.text);
src/cable_club.o(.text);
src/trainer_see.o(.text);
@ -444,7 +446,10 @@ SECTIONS {
data/battle_anim_80A9C70.o(.rodata);
src/battle_anim_80A9C70.o(.rodata);
src/title_screen.o(.rodata);
data/field_screen.o(.rodata);
data/field_weather.o(.rodata);
src/field_weather.o(.rodata);
src/field_weather_effect.o(.rodata);
src/field_screen_effect.o(.rodata);
src/battle_setup.o(.rodata);
src/cable_club.o(.rodata);
src/trainer_see.o(.rodata);

View File

@ -59,7 +59,7 @@ typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite);
extern const struct OamData gEventObjectBaseOam_32x32;
extern void sub_80AC3D0(void);
extern void SetWeatherScreenFadeOut(void);
// this file's functions
static void LaunchBattleTransitionTask(u8 transitionId);
@ -981,7 +981,7 @@ static void Task_BattleTransitionMain(u8 taskId)
static bool8 Transition_Phase1(struct Task *task)
{
sub_80AC3D0();
SetWeatherScreenFadeOut();
CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
if (sPhase1_Tasks[task->tTransitionId] != NULL)
{

View File

@ -17,13 +17,13 @@
#include "string_util.h"
#include "battle_message.h"
#include "constants/battle_string_ids.h"
#include "constants/weather.h"
#include "battle_ai_script_commands.h"
#include "battle_controllers.h"
#include "event_data.h"
#include "link.h"
#include "berry.h"
extern u8 weather_get_current(void);
#include "field_weather.h"
// rom const data
static const u16 sSoundMovesTable[] =
@ -1827,11 +1827,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
case ABILITYEFFECT_SWITCH_IN_WEATHER:
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
{
switch (weather_get_current())
switch (GetCurrentWeather())
{
case 3:
case 5:
case 13:
case WEATHER_RAIN_LIGHT:
case WEATHER_RAIN_MED:
case WEATHER_RAIN_HEAVY:
if (!(gBattleWeather & WEATHER_RAIN_ANY))
{
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
@ -1840,7 +1840,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
effect++;
}
break;
case 8:
case WEATHER_SANDSTORM:
if (!(gBattleWeather & WEATHER_SANDSTORM_ANY))
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
@ -1849,7 +1849,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
effect++;
}
break;
case 12:
case WEATHER_DROUGHT:
if (!(gBattleWeather & WEATHER_SUN_ANY))
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
@ -1862,7 +1862,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
}
if (effect)
{
gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current();
gBattleCommunication[MULTISTRING_CHOOSER] = GetCurrentWeather();
BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts);
}
break;

View File

@ -5,7 +5,7 @@
#include "lottery_corner.h"
#include "dewford_trend.h"
#include "tv.h"
#include "field_screen.h"
#include "field_weather.h"
#include "berry.h"
#include "main.h"
#include "overworld.h"

View File

@ -16,7 +16,7 @@
#include "field_weather.h"
#include "field_player_avatar.h"
#include "field_camera.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "event_object_movement.h"
#include "list_menu.h"
#include "menu_helpers.h"

View File

@ -30,7 +30,7 @@
#include "field_weather.h"
#include "international_string_util.h"
#include "naming_screen.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "battle.h" // to get rid of later
struct EggHatchData
@ -60,7 +60,7 @@ extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle
extern const u8 gText_HatchedFromEgg[];
extern const u8 gText_NickHatchPrompt[];
extern void play_some_sound(void);
extern void PlayRainSoundEffect(void);
extern u16 sub_80D22D0(void);
extern u8 CountPartyAliveNonEggMonsExcept(u8);
@ -581,7 +581,7 @@ static void Task_EggHatchPlayBGM(u8 taskID)
if (gTasks[taskID].data[0] == 0)
{
StopMapMusic();
play_some_sound();
PlayRainSoundEffect();
}
if (gTasks[taskID].data[0] == 1)
PlayBGM(MUS_ME_SHINKA);

View File

@ -8,10 +8,9 @@
#include "event_scripts.h"
#include "fieldmap.h"
#include "field_control_avatar.h"
#include "field_fadetransition.h"
#include "field_player_avatar.h"
#include "field_poison.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_specials.h"
#include "fldeff_80F9BCC.h"
#include "item_menu.h"

View File

@ -6,7 +6,7 @@
#include "field_effect.h"
#include "field_effect_helpers.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "fieldmap.h"
#include "fldeff_groundshake.h"
@ -244,7 +244,7 @@ extern void pal_fill_for_maplights(void);
extern void sub_80E1558(u8);
extern void sub_80E1570(void);
extern bool8 sub_80E1584(void);
extern void sub_80AF0B4(void);
extern void WarpFadeScreen(void);
// .rodata
const u32 gNewGameBirchPic[] = INCBIN_U32("graphics/birch_speech/birch.4bpp");
@ -1593,8 +1593,8 @@ static void sub_80B7004(struct Task *task)
static void sub_80B7050(void)
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
}
static void sub_80B7060(void)
@ -1943,8 +1943,8 @@ static bool8 sub_80B7704(struct Task *task, struct EventObject *eventObject, str
static bool8 sub_80B77F8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite)
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
task->data[0]++;
return FALSE;
}
@ -2099,8 +2099,8 @@ static bool8 sub_80B7BCC(struct Task *task, struct EventObject *eventObject, str
{
if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
task->data[0]++;
}
return FALSE;
@ -2161,8 +2161,8 @@ static void EscapeRopeFieldEffect_Step1(struct Task *task)
u8 spinDirections[5] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH};
if (task->data[14] != 0 && (--task->data[14]) == 0)
{
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
}
eventObject = &gEventObjects[gPlayerAvatar.eventObjectId];
if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject))
@ -2314,8 +2314,8 @@ static void TeleportFieldEffectTask3(struct Task *task)
if (task->data[4] >= 0xa8)
{
task->data[0]++;
music_something();
sub_80AF0B4();
TryFadeOutOldMapMusic();
WarpFadeScreen();
}
}
@ -3123,7 +3123,7 @@ static void sub_80B9474(struct Task *task)
{
if (sub_80B9508(task->data[1]))
{
sub_80AF0B4();
WarpFadeScreen();
task->data[0]++;
}
}

View File

@ -1,15 +0,0 @@
// Includes
#include "global.h"
// Static type declarations
// Static RAM declarations
IWRAM_DATA u8 *gUnknown_03000F50;
IWRAM_DATA u32 filler_03000f54;
// Static ROM declarations
// .rodata
// .text

1261
src/field_screen_effect.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@
#include "field_effect.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_specials.h"
#include "field_weather.h"
#include "international_string_util.h"

1095
src/field_weather.c Normal file

File diff suppressed because it is too large Load Diff

2471
src/field_weather_effect.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -170,7 +170,7 @@ static bool8 sub_8137304(void)
return FALSE;
}
bool8 sub_8137360(u8 a1, u8 a2)
bool8 GetMapPairFadeToType(u8 a1, u8 a2)
{
u8 i;
u8 v0 = a1;
@ -187,7 +187,7 @@ bool8 sub_8137360(u8 a1, u8 a2)
return FALSE;
}
bool8 fade_type_for_given_maplight_pair(u8 a1, u8 a2)
bool8 GetMapPairFadeFromType(u8 a1, u8 a2)
{
u8 i;
u8 v0 = a1;

View File

@ -3,7 +3,8 @@
#include "event_scripts.h"
#include "field_effect.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "palette.h"
#include "party_menu.h"
#include "rom6.h"
@ -40,7 +41,7 @@ bool8 FldEff_SweetScent(void)
{
u8 taskId;
sub_80AC3D0();
SetWeatherScreenFadeOut();
taskId = oei_task_add();
gTasks[taskId].data[8] = (u32)StartSweetScentFieldEffect >> 16;
gTasks[taskId].data[9] = (u32)StartSweetScentFieldEffect;

View File

@ -10,7 +10,7 @@
#include "fieldmap.h"
#include "event_object_movement.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "item.h"
#include "item_menu.h"

View File

@ -5,7 +5,7 @@
#include "contest_effect.h"
#include "data2.h"
#include "event_data.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "gpu_regs.h"
#include "learn_move.h"
#include "list_menu.h"
@ -52,7 +52,7 @@ static EWRAM_DATA struct {
const u16 gUnknown_085CE9F8[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal");
const u8 gUnknown_085CEA18[] = INCBIN_U8("graphics/interface/ui_learn_move.4bpp");
const struct OamData gUnknown_085CEB98 =
const struct OamData gUnknown_085CEB98 =
{
.y = 0,
.affineMode = 0,
@ -69,7 +69,7 @@ const struct OamData gUnknown_085CEB98 =
.affineParam = 0,
};
const struct OamData gUnknown_085CEBA0 =
const struct OamData gUnknown_085CEBA0 =
{
.y = 0,
.affineMode = 0,
@ -86,7 +86,7 @@ const struct OamData gUnknown_085CEBA0 =
.affineParam = 0,
};
const struct OamData gUnknown_085CEBA8 =
const struct OamData gUnknown_085CEBA8 =
{
.y = 0,
.affineMode = 0,
@ -103,20 +103,20 @@ const struct OamData gUnknown_085CEBA8 =
.affineParam = 0,
};
const struct SpriteSheet gUnknown_085CEBB0 =
const struct SpriteSheet gUnknown_085CEBB0 =
{
.data = gUnknown_085CEA18,
.size = 0x180,
.tag = 5525
};
const struct SpritePalette gUnknown_085CEBB8 =
const struct SpritePalette gUnknown_085CEBB8 =
{
.data = gUnknown_085CE9F8,
.tag = 5526
};
const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
{
.firstArrowType = 0,
.firstX = 27,
@ -131,7 +131,7 @@ const struct ScrollArrowsTemplate gUnknown_085CEBC0 =
.palNum = 0,
};
const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
{
.firstArrowType = 2,
.firstX = 192,
@ -146,31 +146,31 @@ const struct ScrollArrowsTemplate gUnknown_085CEBD0 =
.palNum = 0,
};
const union AnimCmd gUnknown_085CEBE0[] =
const union AnimCmd gUnknown_085CEBE0[] =
{
ANIMCMD_FRAME(8, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBE8[] =
const union AnimCmd gUnknown_085CEBE8[] =
{
ANIMCMD_FRAME(9, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBF0[] =
const union AnimCmd gUnknown_085CEBF0[] =
{
ANIMCMD_FRAME(10, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd gUnknown_085CEBF8[] =
const union AnimCmd gUnknown_085CEBF8[] =
{
ANIMCMD_FRAME(11, 5, FALSE, FALSE),
ANIMCMD_END
};
const union AnimCmd *const gUnknown_085CEC00[] =
const union AnimCmd *const gUnknown_085CEC00[] =
{
gUnknown_085CEBE0,
gUnknown_085CEBE8,
@ -178,7 +178,7 @@ const union AnimCmd *const gUnknown_085CEC00[] =
gUnknown_085CEBF8,
};
const struct SpriteTemplate gUnknown_085CEC10 =
const struct SpriteTemplate gUnknown_085CEC10 =
{
.tileTag = 5525,
.paletteTag = 5526,
@ -707,7 +707,7 @@ static void CreateHearts(void)
sLearnMoveStruct->scrollArrowTaskId2 = -1;
sLearnMoveStruct->scrollArrowTaskId1 = -1;
AddScrollArrows();
for (i = 0; i < 8; i++)
{
sLearnMoveStruct->spriteIds[i] = CreateSprite(&gUnknown_085CEC10, (i - (i / 4) * 4) * 8 + 104, (i / 4) * 8 + 36, 0);
@ -791,7 +791,7 @@ void ShowHideHearts(s32 item)
else
{
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].appeal / 10);
if (numHearts == 0xFF)
{
numHearts = 0;
@ -811,7 +811,7 @@ void ShowHideHearts(s32 item)
}
numHearts = (u8)(gContestEffects[gContestMoves[item].effect].jam / 10);
if (numHearts == 0xFF)
{
numHearts = 0;

View File

@ -4,18 +4,17 @@
#include "battle_setup.h"
#include "berry.h"
#include "bg.h"
// #include "cable_club.h"
#include "cable_club.h"
#include "clock.h"
#include "event_data.h"
#include "field_camera.h"
#include "field_control_avatar.h"
#include "field_effect.h"
#include "field_fadetransition.h"
#include "event_object_movement.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
#include "field_screen_effect.h"
// #include "field_special_scene.h"
#include "field_special_scene.h"
#include "field_specials.h"
#include "field_tasks.h"
#include "field_weather.h"
@ -38,7 +37,7 @@
#include "play_time.h"
#include "random.h"
#include "roamer.h"
// #include "rotating_gate.h"
#include "rotating_gate.h"
#include "safari_zone.h"
#include "save.h"
#include "save_location.h"
@ -129,7 +128,7 @@ extern void sub_80A0A38(void);
extern void trainer_hill_map_load_related(void);
extern void sub_8087D74(void);
extern void battle_pyramid_map_load_related(u8);
extern void sub_80B00E8(u8);
extern void WriteFlashScanlineEffectBuffer(u8);
extern void sub_80E9238(u8);
extern void sub_81AA2F8(void);
extern void sub_8195E10(void);
@ -148,7 +147,7 @@ extern void ResetAllPicSprites(void);
extern void FieldEffectActiveListClear(void);
extern void SetUpFieldTasks(void);
extern void sub_81BE6B8(void);
extern void sub_80AAFA4(void);
extern void StartWeather(void);
extern void ShowStartMenu(void);
extern void sub_80AEE84(void);
extern void mapldr_default(void);
@ -1277,7 +1276,7 @@ u8 GetMapMusicFadeoutSpeed(void)
return 4;
}
void music_something(void)
void TryFadeOutOldMapMusic(void)
{
u16 currentMusic = GetCurrentMapMusic();
u16 warpMusic = GetWarpDestinationMusic();
@ -1855,7 +1854,7 @@ static void InitCurrentFlashLevelScanlineEffect(void)
}
else if ((flashLevel = Overworld_GetFlashLevel()))
{
sub_80B00E8(flashLevel);
WriteFlashScanlineEffectBuffer(flashLevel);
ScanlineEffect_SetParams(sFlashEffectParams);
}
}
@ -2196,7 +2195,7 @@ static void sub_8086988(u32 a1)
InitEventObjectPalettes(1);
FieldEffectActiveListClear();
sub_80AAFA4();
StartWeather();
sub_80AEE84();
if (!a1)
SetUpFieldTasks();

View File

@ -3,9 +3,8 @@
#include "bg.h"
#include "decoration.h"
#include "event_scripts.h"
#include "field_fadetransition.h"
#include "event_object_movement.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "international_string_util.h"
#include "item.h"

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "bg.h"
#include "event_data.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "gpu_regs.h"
#include "international_string_util.h"

View File

@ -22,7 +22,7 @@
#include "constants/songs.h"
#include "menu.h"
#include "overworld.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "fldeff_80F9BCC.h"
#include "script.h"
#include "event_data.h"

View File

@ -32,7 +32,7 @@
#include "decompress.h"
#include "start_menu.h"
#include "data2.h"
#include "field_screen.h"
#include "field_screen_effect.h"
extern void HealPlayerParty(void);

View File

@ -13,7 +13,6 @@
#include "event_data.h"
#include "field_door.h"
#include "field_effect.h"
#include "field_fadetransition.h"
#include "event_object_movement.h"
#include "field_message_box.h"
#include "field_player_avatar.h"

View File

@ -1,5 +1,3 @@
// Includes
#include "global.h"
#include "constants/bg_event_constants.h"
#include "constants/decorations.h"
@ -19,7 +17,7 @@
#include "fieldmap.h"
#include "field_camera.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "event_object_movement.h"
#include "field_effect.h"

View File

@ -6,7 +6,7 @@
#include "decoration_inventory.h"
#include "event_object_movement.h"
#include "field_player_avatar.h"
#include "field_screen.h"
#include "field_screen_effect.h"
#include "field_weather.h"
#include "fieldmap.h"
#include "gpu_regs.h"

View File

@ -88,7 +88,7 @@ extern void sub_80AF688(void);
extern void var_800D_set_xB(void);
extern void sub_808B864(void);
extern void CB2_Pokedex(void);
extern void play_some_sound(void);
extern void PlayRainSoundEffect(void);
extern void CB2_PartyMenuFromStartMenu(void);
extern void CB2_PokeNav(void);
extern void sub_80C4DDC(void (*)(void));
@ -621,7 +621,7 @@ static bool8 StartMenuPokedexCallback(void)
if (!gPaletteFade.active)
{
IncrementGameStat(GAME_STAT_CHECKED_POKEDEX);
play_some_sound();
PlayRainSoundEffect();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
SetMainCallback2(CB2_Pokedex);
@ -636,7 +636,7 @@ static bool8 StartMenuPokemonCallback(void)
{
if (!gPaletteFade.active)
{
play_some_sound();
PlayRainSoundEffect();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
SetMainCallback2(CB2_PartyMenuFromStartMenu); // Display party menu
@ -651,7 +651,7 @@ static bool8 StartMenuBagCallback(void)
{
if (!gPaletteFade.active)
{
play_some_sound();
PlayRainSoundEffect();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
SetMainCallback2(CB2_BagMenuFromStartMenu); // Display bag menu
@ -666,7 +666,7 @@ static bool8 StartMenuPokeNavCallback(void)
{
if (!gPaletteFade.active)
{
play_some_sound();
PlayRainSoundEffect();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
SetMainCallback2(CB2_PokeNav); // Display PokeNav
@ -681,7 +681,7 @@ static bool8 StartMenuPlayerNameCallback(void)
{
if (!gPaletteFade.active)
{
play_some_sound();
PlayRainSoundEffect();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
@ -720,7 +720,7 @@ static bool8 StartMenuOptionCallback(void)
{
if (!gPaletteFade.active)
{
play_some_sound();
PlayRainSoundEffect();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
SetMainCallback2(CB2_InitOptionMenu); // Display option menu
@ -753,7 +753,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void)
{
if (!gPaletteFade.active)
{
play_some_sound();
PlayRainSoundEffect();
overworld_free_bg_tilemaps();
TrainerCard_ShowLinkCard(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu);
@ -782,7 +782,7 @@ static bool8 StartMenuBattlePyramidBagCallback(void)
{
if (!gPaletteFade.active)
{
play_some_sound();
PlayRainSoundEffect();
RemoveExtraStartMenuWindows();
overworld_free_bg_tilemaps();
SetMainCallback2(CB2_PyramidBagMenuFromStartMenu);

View File

@ -21,7 +21,7 @@
.include "src/tileset_anims.o"
.include "src/palette.o"
.include "src/sound.o"
.include "src/field_screen.o"
.include "src/field_weather.o"
.include "src/field_effect.o"
.include "src/pokemon_storage_system.o"
.include "src/fldeff_cut.o"

View File

@ -154,24 +154,8 @@ gUnknown_020375C0: @ 20375C0
.include "src/battle_anim_80A5C6C.o"
.space 0xC
gUnknown_02038454: @ 2038454
.space 0x200
gUnknown_02038654: @ 2038654
.space 0x260
gUnknown_020388B4: @ 20388B4
.space 0x2F0
gUnknown_02038BA4: @ 2038BA4
.space 0x20
gUnknown_02038BC4: @ 2038BC4
.space 0x2
gUnknown_02038BC6: @ 2038BC6
.space 0x2
.include "src/field_weather.o"
.include "src/field_weather_effect.o"
.include "src/battle_setup.o"
.include "src/trainer_see.o"
.include "src/wild_encounter.o"