Decompile fldeff hooks

This commit is contained in:
PikalaxALT
2020-02-27 09:18:54 -05:00
parent 43f66fce55
commit 456c817338
10 changed files with 257 additions and 584 deletions
-576
View File
@@ -5,582 +5,6 @@
.text
thumb_func_start FieldEffectStart
FieldEffectStart: @ 8083444
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl FieldEffectActiveListAdd
ldr r0, _08083484 @ =gUnknown_81D96AC
lsls r4, 2
adds r4, r0
ldr r0, [r4]
str r0, [sp]
add r4, sp, 0x4
ldr r5, _08083488 @ =gUnknown_83CBE30
_08083462:
ldr r0, [sp]
ldrb r0, [r0]
lsls r0, 2
adds r0, r5
ldr r2, [r0]
mov r0, sp
adds r1, r4, 0
bl _call_via_r2
lsls r0, 24
cmp r0, 0
bne _08083462
ldr r0, [sp, 0x4]
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08083484: .4byte gUnknown_81D96AC
_08083488: .4byte gUnknown_83CBE30
thumb_func_end FieldEffectStart
thumb_func_start FieldEffectCmd_loadtiles
FieldEffectCmd_loadtiles: @ 808348C
push {lr}
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
bl FieldEffectScript_LoadTiles
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end FieldEffectCmd_loadtiles
thumb_func_start FieldEffectCmd_loadfadedpal
FieldEffectCmd_loadfadedpal: @ 80834A0
push {lr}
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
bl sub_8083614
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end FieldEffectCmd_loadfadedpal
thumb_func_start FieldEffectCmd_loadpal
FieldEffectCmd_loadpal: @ 80834B4
push {lr}
ldr r1, [r0]
adds r1, 0x1
str r1, [r0]
bl sub_808365C
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end FieldEffectCmd_loadpal
thumb_func_start FieldEffectCmd_callnative
FieldEffectCmd_callnative: @ 80834C8
push {lr}
ldr r2, [r0]
adds r2, 0x1
str r2, [r0]
bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r1}
bx r1
thumb_func_end FieldEffectCmd_callnative
thumb_func_start sub_80834DC
sub_80834DC: @ 80834DC
movs r0, 0
bx lr
thumb_func_end sub_80834DC
thumb_func_start FieldEffectCmd_loadgfx_callnative
FieldEffectCmd_loadgfx_callnative: @ 80834E0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
adds r0, r4, 0
bl FieldEffectScript_LoadTiles
adds r0, r4, 0
bl sub_8083614
adds r0, r4, 0
adds r1, r5, 0
bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end FieldEffectCmd_loadgfx_callnative
thumb_func_start FieldEffectCmd_loadtiles_callnative
FieldEffectCmd_loadtiles_callnative: @ 8083508
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
adds r0, r4, 0
bl FieldEffectScript_LoadTiles
adds r0, r4, 0
adds r1, r5, 0
bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end FieldEffectCmd_loadtiles_callnative
thumb_func_start FieldEffectCmd_loadfadedpal_callnative
FieldEffectCmd_loadfadedpal_callnative: @ 808352C
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
adds r0, r4, 0
bl sub_8083614
adds r0, r4, 0
adds r1, r5, 0
bl FieldEffectScript_CallNative
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end FieldEffectCmd_loadfadedpal_callnative
thumb_func_start FieldEffectScript_ReadWord
FieldEffectScript_ReadWord: @ 8083550
ldr r2, [r0]
ldrb r0, [r2]
ldrb r1, [r2, 0x1]
lsls r1, 8
adds r0, r1
ldrb r1, [r2, 0x2]
lsls r1, 16
adds r0, r1
ldrb r1, [r2, 0x3]
lsls r1, 24
adds r0, r1
bx lr
thumb_func_end FieldEffectScript_ReadWord
thumb_func_start FieldEffectScript_LoadTiles
FieldEffectScript_LoadTiles: @ 8083568
push {r4,r5,lr}
adds r4, r0, 0
bl FieldEffectScript_ReadWord
adds r5, r0, 0
ldrh r0, [r5, 0x6]
bl GetSpriteTileStartByTag
lsls r0, 16
ldr r1, _08083594 @ =0xffff0000
cmp r0, r1
bne _08083586
adds r0, r5, 0
bl LoadSpriteSheet
_08083586:
ldr r0, [r4]
adds r0, 0x4
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08083594: .4byte 0xffff0000
thumb_func_end FieldEffectScript_LoadTiles
thumb_func_start sub_8083598
sub_8083598: @ 8083598
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080835B4 @ =gUnknown_2036E28
ldrb r0, [r0]
cmp r0, 0x1
beq _080835B8
cmp r0, 0x1
ble _08083606
cmp r0, 0x2
beq _080835CC
cmp r0, 0x3
beq _080835E0
b _08083606
.align 2, 0
_080835B4: .4byte gUnknown_2036E28
_080835B8:
adds r4, 0x10
lsls r0, r4, 5
ldr r1, _080835C8 @ =gPlttBufferUnfaded
adds r0, r1
movs r1, 0x10
bl TintPalette_GrayScale
b _080835F6
.align 2, 0
_080835C8: .4byte gPlttBufferUnfaded
_080835CC:
adds r4, 0x10
lsls r0, r4, 5
ldr r1, _080835DC @ =gPlttBufferUnfaded
adds r0, r1
movs r1, 0x10
bl TintPalette_SepiaTone
b _080835F6
.align 2, 0
_080835DC: .4byte gPlttBufferUnfaded
_080835E0:
adds r4, 0x10
lsls r0, r4, 4
movs r1, 0x10
bl sub_8111F38
lsls r0, r4, 5
ldr r1, _0808360C @ =gPlttBufferUnfaded
adds r0, r1
movs r1, 0x10
bl TintPalette_GrayScale
_080835F6:
lsls r1, r4, 5
ldr r0, _0808360C @ =gPlttBufferUnfaded
adds r0, r1, r0
ldr r2, _08083610 @ =gPlttBufferFaded
adds r1, r2
movs r2, 0x8
bl CpuFastSet
_08083606:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0808360C: .4byte gPlttBufferUnfaded
_08083610: .4byte gPlttBufferFaded
thumb_func_end sub_8083598
thumb_func_start sub_8083614
sub_8083614: @ 8083614
push {r4-r6,lr}
adds r6, r0, 0
bl FieldEffectScript_ReadWord
adds r5, r0, 0
ldrh r0, [r5, 0x4]
bl IndexOfSpritePaletteTag
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
bl LoadSpritePalette
cmp r4, 0xFF
bne _08083642
ldrh r0, [r5, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
bl sub_8083598
_08083642:
ldrh r0, [r5, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
bl sub_807AA8C
ldr r0, [r6]
adds r0, 0x4
str r0, [r6]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8083614
thumb_func_start sub_808365C
sub_808365C: @ 808365C
push {r4-r6,lr}
adds r6, r0, 0
bl FieldEffectScript_ReadWord
adds r5, r0, 0
ldrh r0, [r5, 0x4]
bl IndexOfSpritePaletteTag
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
bl LoadSpritePalette
cmp r4, 0xFF
beq _0808368A
ldrh r0, [r5, 0x4]
bl IndexOfSpritePaletteTag
lsls r0, 24
lsrs r0, 24
bl sub_8083598
_0808368A:
ldr r0, [r6]
adds r0, 0x4
str r0, [r6]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_808365C
thumb_func_start FieldEffectScript_CallNative
FieldEffectScript_CallNative: @ 8083698
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
bl FieldEffectScript_ReadWord
bl _call_via_r0
str r0, [r5]
ldr r0, [r4]
adds r0, 0x4
str r0, [r4]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end FieldEffectScript_CallNative
thumb_func_start FieldEffectFreeGraphicsResources
FieldEffectFreeGraphicsResources: @ 80836B4
push {r4,r5,lr}
adds r1, r0, 0
adds r1, 0x40
ldrh r5, [r1]
ldrb r4, [r0, 0x5]
lsrs r4, 4
bl DestroySprite
adds r0, r5, 0
bl FieldEffectFreeTilesIfUnused
adds r0, r4, 0
bl FieldEffectFreePaletteIfUnused
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end FieldEffectFreeGraphicsResources
thumb_func_start FieldEffectStop
FieldEffectStop: @ 80836D8
push {r4,lr}
lsls r4, r1, 24
lsrs r4, 24
bl FieldEffectFreeGraphicsResources
adds r0, r4, 0
bl FieldEffectActiveListRemove
pop {r4}
pop {r0}
bx r0
thumb_func_end FieldEffectStop
thumb_func_start FieldEffectFreeTilesIfUnused
FieldEffectFreeTilesIfUnused: @ 80836F0
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
bl GetSpriteTileTagByTileStart
lsls r0, 16
lsrs r3, r0, 16
ldr r0, _0808374C @ =0x0000ffff
cmp r3, r0
beq _08083744
movs r2, 0
ldr r5, _08083750 @ =gSprites
_0808370A:
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r1, r0, r5
adds r0, r1, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
beq _08083734
adds r0, r1, 0
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 25
cmp r0, 0
bge _08083734
adds r0, r1, 0
adds r0, 0x40
ldrh r0, [r0]
cmp r4, r0
beq _08083744
_08083734:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3F
bls _0808370A
adds r0, r3, 0
bl FreeSpriteTilesByTag
_08083744:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0808374C: .4byte 0x0000ffff
_08083750: .4byte gSprites
thumb_func_end FieldEffectFreeTilesIfUnused
thumb_func_start FieldEffectFreePaletteIfUnused
FieldEffectFreePaletteIfUnused: @ 8083754
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl GetSpritePaletteTagByPaletteNum
lsls r0, 16
lsrs r5, r0, 16
ldr r0, _080837A4 @ =0x0000ffff
cmp r5, r0
beq _0808379C
movs r2, 0
ldr r6, _080837A8 @ =gSprites
adds r3, r4, 0
_08083770:
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r1, r0, r6
adds r0, r1, 0
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
beq _0808378C
ldrb r0, [r1, 0x5]
lsrs r0, 4
cmp r0, r3
beq _0808379C
_0808378C:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3F
bls _08083770
adds r0, r5, 0
bl FreeSpritePaletteByTag
_0808379C:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080837A4: .4byte 0x0000ffff
_080837A8: .4byte gSprites
thumb_func_end FieldEffectFreePaletteIfUnused
thumb_func_start FieldEffectActiveListClear
FieldEffectActiveListClear: @ 80837AC
push {r4,lr}
movs r2, 0
ldr r4, _080837CC @ =gUnknown_3000FC8
movs r3, 0xFF
_080837B4:
adds r0, r2, r4
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1F
bls _080837B4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080837CC: .4byte gUnknown_3000FC8
thumb_func_end FieldEffectActiveListClear
thumb_func_start FieldEffectActiveListAdd
FieldEffectActiveListAdd: @ 80837D0
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r2, 0
ldr r4, _080837E8 @ =gUnknown_3000FC8
_080837DA:
adds r1, r2, r4
ldrb r0, [r1]
cmp r0, 0xFF
bne _080837EC
strb r3, [r1]
b _080837F6
.align 2, 0
_080837E8: .4byte gUnknown_3000FC8
_080837EC:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1F
bls _080837DA
_080837F6:
pop {r4}
pop {r0}
bx r0
thumb_func_end FieldEffectActiveListAdd
thumb_func_start FieldEffectActiveListRemove
FieldEffectActiveListRemove: @ 80837FC
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r2, 0
ldr r4, _08083818 @ =gUnknown_3000FC8
movs r5, 0xFF
_08083808:
adds r1, r2, r4
ldrb r0, [r1]
cmp r0, r3
bne _0808381C
orrs r0, r5
strb r0, [r1]
b _08083826
.align 2, 0
_08083818: .4byte gUnknown_3000FC8
_0808381C:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x1F
bls _08083808
_08083826:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end FieldEffectActiveListRemove
thumb_func_start FieldEffectActiveListContains
FieldEffectActiveListContains: @ 808382C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
ldr r3, _08083844 @ =gUnknown_3000FC8
_08083836:
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, r2
bne _08083848
movs r0, 0x1
b _08083854
.align 2, 0
_08083844: .4byte gUnknown_3000FC8
_08083848:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1F
bls _08083836
movs r0, 0
_08083854:
pop {r1}
bx r1
thumb_func_end FieldEffectActiveListContains
thumb_func_start CreateTrainerSprite
CreateTrainerSprite: @ 8083858
push {r4-r7,lr}
+2 -2
View File
@@ -49,12 +49,12 @@ gUnknown_83CBDB0::
.incbin "graphics/field_effects/unk_83CBDB0.4bpp"
.align 2
gUnknown_83CBE30:: @ 83CBE30 dataptr
sFldEffScrcmdTable:: @ 83CBE30 dataptr
.4byte FieldEffectCmd_loadtiles
.4byte FieldEffectCmd_loadfadedpal
.4byte FieldEffectCmd_loadpal
.4byte FieldEffectCmd_callnative
.4byte sub_80834DC
.4byte FieldEffectCmd_end
.4byte FieldEffectCmd_loadgfx_callnative
.4byte FieldEffectCmd_loadtiles_callnative
.4byte FieldEffectCmd_loadfadedpal_callnative
+1 -1
View File
@@ -1,7 +1,7 @@
.include "asm/macros/field_effect_script.inc"
.section script_data, "aw", %progbits
.align 2
gUnknown_81D96AC:: @ 81D96AC
gFieldEffectScriptPointers:: @ 81D96AC
.4byte gFldEffScript_ExclamationMarkIcon
.4byte gFldEffScript_UseCutOnGrass
.4byte gFldEffScript_UseCutOnTree
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_FIELD_EFFECT_SCRIPTS_H
#define GUARD_FIELD_EFFECT_SCRIPTS_H
extern const u8 *const gFieldEffectScriptPointers[];
#endif //GUARD_FIELD_EFFECT_SCRIPTS_H
+1
View File
@@ -18,5 +18,6 @@ void SetWeatherScreenFadeOut(void);
void sub_807B070(void);
u8 GetCurrentWeather(void);
void FieldWeather_StartFadingOutCreditsMap(u8, u8, u32);
void sub_807AA8C(u8 palIdx);
#endif // GUARD_WEATHER_H
+1 -1
View File
@@ -29,7 +29,7 @@ void sub_811539C(void);
void sub_8115748(u16);
u8 sub_8112CAC(void);
bool8 QuestLog_SchedulePlaybackCB(void (*func)(void));
void sub_8111F38(u16, u16);
void sub_8111F38(u16 offset, u16 idx);
void sub_8111134(void);
void DestroyHelpMessageWindow(u8 a0);
u8 CreateHelpMessageWindow(void);
+1
View File
@@ -123,6 +123,7 @@ SECTIONS {
asm/cable_club.o(.text);
src/trainer_see.o(.text);
src/wild_encounter.o(.text);
src/field_effect.o(.text);
asm/field_effect.o(.text);
src/scanline_effect.o(.text);
src/option_menu.o(.text);
+243
View File
@@ -0,0 +1,243 @@
#include "global.h"
#include "gflib.h"
#include "field_effect.h"
#include "field_effect_scripts.h"
#include "field_weather.h"
#include "overworld.h"
#include "quest_log.h"
#define FIELD_EFFECT_COUNT 32
static u8 sFieldEffectActiveList[FIELD_EFFECT_COUNT];
void FieldEffectActiveListAdd(u8 fldeff);
void FieldEffectScript_LoadTiles(const u8 **script);
void FieldEffectScript_LoadFadedPal(const u8 **script);
void FieldEffectScript_LoadPal(const u8 **script);
void FieldEffectScript_CallNative(const u8 **script, u32 *result);
void FieldEffectFreeTilesIfUnused(u16 tilesTag);
void FieldEffectFreePaletteIfUnused(u8 paletteNum);
extern bool8 (*const sFldEffScrcmdTable[])(const u8 **script, u32 *result);
u32 FieldEffectStart(u8 fldeff)
{
const u8 *script;
u32 result;
FieldEffectActiveListAdd(fldeff);
script = gFieldEffectScriptPointers[fldeff];
while (sFldEffScrcmdTable[*script](&script, &result))
;
return result;
}
bool8 FieldEffectCmd_loadtiles(const u8 **script, u32 *result)
{
(*script)++;
FieldEffectScript_LoadTiles(script);
return TRUE;
}
bool8 FieldEffectCmd_loadfadedpal(const u8 **script, u32 *result)
{
(*script)++;
FieldEffectScript_LoadFadedPal(script);
return TRUE;
}
bool8 FieldEffectCmd_loadpal(const u8 **script, u32 *result)
{
(*script)++;
FieldEffectScript_LoadPal(script);
return TRUE;
}
bool8 FieldEffectCmd_callnative(const u8 **script, u32 *result)
{
(*script)++;
FieldEffectScript_CallNative(script, result);
return TRUE;
}
bool8 FieldEffectCmd_end(const u8 **script, u32 *result)
{
return FALSE;
}
bool8 FieldEffectCmd_loadgfx_callnative(const u8 **script, u32 *result)
{
(*script)++;
FieldEffectScript_LoadTiles(script);
FieldEffectScript_LoadFadedPal(script);
FieldEffectScript_CallNative(script, result);
return TRUE;
}
bool8 FieldEffectCmd_loadtiles_callnative(const u8 **script, u32 *result)
{
(*script)++;
FieldEffectScript_LoadTiles(script);
FieldEffectScript_CallNative(script, result);
return TRUE;
}
bool8 FieldEffectCmd_loadfadedpal_callnative(const u8 **script, u32 *result)
{
(*script)++;
FieldEffectScript_LoadFadedPal(script);
FieldEffectScript_CallNative(script, result);
return TRUE;
}
u32 FieldEffectScript_ReadWord(const u8 **script)
{
return T2_READ_32(*script);
}
void FieldEffectScript_LoadTiles(const u8 **script)
{
const struct SpriteSheet * spriteSheet = (const struct SpriteSheet *)FieldEffectScript_ReadWord(script);
if (GetSpriteTileStartByTag(spriteSheet->tag) == 0xFFFF)
LoadSpriteSheet(spriteSheet);
*script += sizeof(u32);
}
void sub_8083598(u8 paletteIdx)
{
switch (gUnknown_2036E28)
{
case 0:
return;
case 1:
TintPalette_GrayScale(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], 0x10);
break;
case 2:
TintPalette_SepiaTone(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], 0x10);
break;
case 3:
sub_8111F38((paletteIdx + 16) * 16, 0x10);
TintPalette_GrayScale(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], 0x10);
break;
default:
return;
}
CpuFastCopy(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], &gPlttBufferFaded[(paletteIdx + 16) * 16], 0x20);
}
void FieldEffectScript_LoadFadedPal(const u8 **script)
{
const struct SpritePalette * spritePalette = (const struct SpritePalette *)FieldEffectScript_ReadWord(script);
u8 idx = IndexOfSpritePaletteTag(spritePalette->tag);
LoadSpritePalette(spritePalette);
if (idx == 0xFF)
sub_8083598(IndexOfSpritePaletteTag(spritePalette->tag));
sub_807AA8C(IndexOfSpritePaletteTag(spritePalette->tag));
*script += sizeof(u32);
}
void FieldEffectScript_LoadPal(const u8 **script)
{
const struct SpritePalette * spritePalette = (const struct SpritePalette *)FieldEffectScript_ReadWord(script);
u8 idx = IndexOfSpritePaletteTag(spritePalette->tag);
LoadSpritePalette(spritePalette);
if (idx != 0xFF)
sub_8083598(IndexOfSpritePaletteTag(spritePalette->tag));
*script += sizeof(u32);
}
void FieldEffectScript_CallNative(const u8 **script, u32 *result)
{
u32 (*func)(void) = (u32 (*)(void))FieldEffectScript_ReadWord(script);
*result = func();
*script += sizeof(u32);
}
void FieldEffectFreeGraphicsResources(struct Sprite * sprite)
{
u16 tileStart = sprite->sheetTileStart;
u8 paletteNum = sprite->oam.paletteNum;
DestroySprite(sprite);
FieldEffectFreeTilesIfUnused(tileStart);
FieldEffectFreePaletteIfUnused(paletteNum);
}
void FieldEffectStop(struct Sprite * sprite, u8 fldeff)
{
FieldEffectFreeGraphicsResources(sprite);
FieldEffectActiveListRemove(fldeff);
}
void FieldEffectFreeTilesIfUnused(u16 tileStart)
{
u8 i;
u16 tileTag = GetSpriteTileTagByTileStart(tileStart);
if (tileTag == 0xFFFF)
return;
for (i = 0; i < MAX_SPRITES; i++)
{
if (gSprites[i].inUse && gSprites[i].usingSheet && tileStart == gSprites[i].sheetTileStart)
return;
}
FreeSpriteTilesByTag(tileTag);
}
void FieldEffectFreePaletteIfUnused(u8 paletteNum)
{
u8 i;
u16 paletteTag = GetSpritePaletteTagByPaletteNum(paletteNum);
if (paletteTag == 0xFFFF)
return;
for (i = 0; i < MAX_SPRITES; i++)
{
if (gSprites[i].inUse && gSprites[i].oam.paletteNum == paletteNum)
return;
}
FreeSpritePaletteByTag(paletteTag);
}
void FieldEffectActiveListClear(void)
{
u8 i;
for (i = 0; i < FIELD_EFFECT_COUNT; i++)
{
sFieldEffectActiveList[i] = 0xFF;
}
}
void FieldEffectActiveListAdd(u8 fldeff)
{
u8 i;
for (i = 0; i < FIELD_EFFECT_COUNT; i++)
{
if (sFieldEffectActiveList[i] == 0xFF)
{
sFieldEffectActiveList[i] = fldeff;
return;
}
}
}
void FieldEffectActiveListRemove(u8 fldeff)
{
u8 i;
for (i = 0; i < FIELD_EFFECT_COUNT; i++)
{
if (sFieldEffectActiveList[i] == fldeff)
{
sFieldEffectActiveList[i] = 0xFF;
return;
}
}
}
bool8 FieldEffectActiveListContains(u8 fldeff)
{
u8 i;
for (i = 0; i < FIELD_EFFECT_COUNT; i++)
{
if (sFieldEffectActiveList[i] == fldeff)
{
return TRUE;
}
}
return FALSE;
}
+1 -1
View File
@@ -946,7 +946,7 @@ void sub_8059948(u8 a0, u8 a1)
TintPalette_SepiaTone(gPlttBufferUnfaded + a0 * 16, a1 * 16);
break;
case 3:
sub_8111F38(a0 * 16, a1 * 16);
sub_8111F38((a0 * 16), a1 * 16);
TintPalette_GrayScale(gPlttBufferUnfaded + a0 * 16, a1 * 16);
break;
default:
+1 -3
View File
@@ -60,10 +60,8 @@ gUnknown_3000EA0: @ 3000EA0
.include "src/tileset_anims.o"
.align 2
.include "src/sound.o"
.align 2
gUnknown_3000FC8: @ 3000FC8
.space 0x20
.include "src/field_effect.o"
gUnknown_3000FE8: @ 3000FE8
.space 0x184