mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-28 03:34:22 -05:00
split ground main, palette file, unk file and debug field map file
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
.section .rodata
|
||||
|
||||
.global gUnknown_811601C
|
||||
gUnknown_811601C: @ 811601C
|
||||
.string "fontsppa\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_8116028
|
||||
gUnknown_8116028: @ 8116028
|
||||
.string "fontpal\0"
|
||||
.string "pksdir0\0"
|
||||
@@ -1,7 +0,0 @@
|
||||
#ifndef GUARD_CODE_8099328_H
|
||||
#define GUARD_CODE_8099328_H
|
||||
|
||||
bool8 sub_80992E0(s16 *param_1, s16 *param_2);
|
||||
bool8 sub_8099328(u8 *);
|
||||
|
||||
#endif // GUARD_CODE_8099328_H
|
||||
@@ -22,6 +22,8 @@ bool8 GroundMainRescueRequest(s32 r0, s32 r1);
|
||||
bool32 GroundMainGameEndRequest(u32 r0);
|
||||
bool32 GroundMainGameCancelRequest(u32 r0);
|
||||
bool8 sub_8098D80(u32 speed);
|
||||
bool8 sub_80992E0(s16 *param_1, s16 *param_2);
|
||||
bool8 sub_8099328(u8 *);
|
||||
|
||||
extern GroundConversionStruct gGroundConversion_811BAF4[10];
|
||||
|
||||
|
||||
@@ -333,8 +333,9 @@ SECTIONS {
|
||||
src/exclusive_pokemon.o(.text);
|
||||
src/position_util.o(.text);
|
||||
src/ground_main.o(.text);
|
||||
src/code_8099328.o(.text);
|
||||
src/debug_field_map.o(.text);
|
||||
src/code_8099360.o(.text);
|
||||
src/palette_util.o(.text);
|
||||
src/code_809A560.o(.text);
|
||||
src/code_809C5C4.o(.text);
|
||||
src/code_809D148.o(.text);
|
||||
@@ -706,7 +707,9 @@ SECTIONS {
|
||||
src/position_util.o(.rodata);
|
||||
data/data_8115EB8.o(.rodata);
|
||||
src/ground_main.o(.rodata);
|
||||
data/data_8115F5C.o(.rodata);
|
||||
src/debug_field_map.o(.rodata);
|
||||
src/code_8099360.o(.rodata);
|
||||
src/palette_util.o(.rodata);
|
||||
src/code_809A560.o(.rodata);
|
||||
data/data_8115F5C_2.o(.rodata);
|
||||
src/ground_bg.o(.rodata);
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
#include "text_1.h"
|
||||
#include "text_3.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
extern u8 GetFloorType(void);
|
||||
#include "run_dungeon.h"
|
||||
|
||||
EWRAM_DATA OpenedFile *gUnknown_202EC94 = NULL;
|
||||
EWRAM_DATA OpenedFile *gUnknown_202EC98 = NULL;
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "code_8099328.h"
|
||||
#include "code_80A26CC.h"
|
||||
#include "event_flag.h"
|
||||
|
||||
bool8 sub_80992E0(s16 *param_1, s16 *param_2)
|
||||
{
|
||||
s32 sVar2;
|
||||
|
||||
sVar2 = (s16)GetScriptVarValue(NULL,DUNGEON_ENTER);
|
||||
if ((((sVar2 != -1) && (sVar2 != 0x50)) && (sVar2 != 0x51)) && (sVar2 != 0x52)) {
|
||||
*param_1 = sVar2;
|
||||
*param_2 = GetScriptVarValue(NULL,DUNGEON_ENTER_INDEX);
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
*param_1 = -1;
|
||||
*param_2 = -1;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8099328(u8 *dungeonId) {
|
||||
s16 script_disc;
|
||||
DungeonInfo* dungeonInfo;
|
||||
|
||||
script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER);
|
||||
if (script_disc == 0x51) {
|
||||
script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER_INDEX);
|
||||
dungeonInfo = (DungeonInfo *)GetDungeonInfo_80A2608(script_disc);
|
||||
if(dungeonInfo->dungeonIndex < 0x3f) {
|
||||
*dungeonId = dungeonInfo->dungeonIndex;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
1056
src/code_8099360.c
1056
src/code_8099360.c
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
ALIGNED(4) static const u8 sFmtGroundRequest[] = "GroundMain ground request %3d %3d";
|
||||
ALIGNED(4) static const u8 sFmtRescueRequest[] = "GroundMain recue request %3d %3d";
|
||||
ALIGNED(4) static const u8 sFmtUserRescueRequest[] = "GroundMain user rescue request %3d";
|
||||
ALIGNED(4) static const u8 sFmtGameEndRequest[] = "GroundMain game end request %3d";
|
||||
ALIGNED(4) static const u8 sFmtGameCancelRequest[] = "GroundMain game cancel request %3d";
|
||||
UNUSED static const u8 sFill1[] = _("pksdir0");
|
||||
UNUSED static const u8 sFill2[] = _("pksdir0");
|
||||
272
src/debug_field_map.c
Normal file
272
src/debug_field_map.c
Normal file
@@ -0,0 +1,272 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
|
||||
/*
|
||||
TODO: this is a function that is never called
|
||||
and is very long. I didn't want to split up the
|
||||
file or spend time decomping so here it is in
|
||||
asm();
|
||||
*/
|
||||
|
||||
NAKED
|
||||
UNUSED static void sub_80993F0(void)
|
||||
{
|
||||
asm_unified(" .text\n"
|
||||
" push {r4-r7,lr}\n"
|
||||
" mov r7, r10\n"
|
||||
" mov r6, r9\n"
|
||||
" mov r5, r8\n"
|
||||
" push {r5-r7}\n"
|
||||
" sub sp, 0x28\n"
|
||||
" movs r0, 0\n"
|
||||
" mov r10, r0\n"
|
||||
" bl ResetSoundEffectCounters\n"
|
||||
" movs r0, 0x10\n"
|
||||
" bl FadeOutAllMusic\n"
|
||||
" ldr r1, _0809948C\n"
|
||||
" ldr r2, _08099490\n"
|
||||
" adds r0, r2, 0\n"
|
||||
" strh r0, [r1]\n"
|
||||
" movs r0, 0\n"
|
||||
" bl UpdateFadeInTile\n"
|
||||
" movs r0, 0\n"
|
||||
" movs r1, 0x14\n"
|
||||
" bl sub_80095CC\n"
|
||||
" movs r0, 0\n"
|
||||
" movs r1, 0x1\n"
|
||||
" movs r2, 0x1\n"
|
||||
" bl ShowWindows\n"
|
||||
" movs r0, 0\n"
|
||||
" movs r1, 0x14\n"
|
||||
" bl sub_8009408\n"
|
||||
" bl sub_8099648\n"
|
||||
" bl sub_809975C\n"
|
||||
" bl sub_809D0AC\n"
|
||||
" bl sub_8014144\n"
|
||||
" movs r0, 0\n"
|
||||
" movs r1, 0\n"
|
||||
" bl sub_8005838\n"
|
||||
" bl AllocGroundMapAction\n"
|
||||
" mov r7, sp\n"
|
||||
" add r0, sp, 0x8\n"
|
||||
" mov r8, r0\n"
|
||||
"_08099454:\n"
|
||||
" bl sub_801D9E4\n"
|
||||
" lsls r0, 24\n"
|
||||
" cmp r0, 0\n"
|
||||
" beq _0809949C\n"
|
||||
" mov r0, r10\n"
|
||||
" bl sub_801DA58\n"
|
||||
"_08099464:\n"
|
||||
" movs r0, 0\n"
|
||||
" movs r1, 0\n"
|
||||
" bl sub_8005838\n"
|
||||
" movs r0, 0\n"
|
||||
" bl sub_8012A18\n"
|
||||
" bl sub_801DA78\n"
|
||||
" cmp r0, 0x2\n"
|
||||
" beq _08099494\n"
|
||||
" cmp r0, 0x3\n"
|
||||
" bne _08099464\n"
|
||||
" bl sub_801DAC0\n"
|
||||
" lsls r0, 16\n"
|
||||
" asrs r0, 16\n"
|
||||
" mov r10, r0\n"
|
||||
" b _080994A2\n"
|
||||
" .align 2, 0\n"
|
||||
"_0809948C: .4byte gUnknown_2026E4E\n"
|
||||
"_08099490: .4byte 0x00000808\n"
|
||||
"_08099494:\n"
|
||||
" movs r1, 0x1\n"
|
||||
" negs r1, r1\n"
|
||||
" mov r10, r1\n"
|
||||
" b _080994A2\n"
|
||||
"_0809949C:\n"
|
||||
" movs r2, 0x1\n"
|
||||
" negs r2, r2\n"
|
||||
" mov r10, r2\n"
|
||||
"_080994A2:\n"
|
||||
" bl sub_801DB0C\n"
|
||||
" movs r0, 0x1\n"
|
||||
" negs r0, r0\n"
|
||||
" cmp r10, r0\n"
|
||||
" bne _080994B0\n"
|
||||
" b _08099624\n"
|
||||
"_080994B0:\n"
|
||||
" movs r0, 0\n"
|
||||
" movs r1, 0x1\n"
|
||||
" movs r2, 0x1\n"
|
||||
" bl ShowWindows\n"
|
||||
" bl GroundMap_Reset\n"
|
||||
" bl sub_809D0BC\n"
|
||||
" mov r0, r10\n"
|
||||
" bl GroundMap_Select\n"
|
||||
" mov r0, sp\n"
|
||||
" mov r1, r8\n"
|
||||
" bl sub_80A579C\n"
|
||||
" ldr r0, [r7, 0x4]\n"
|
||||
" movs r1, 0xC0\n"
|
||||
" lsls r1, 4\n"
|
||||
" adds r0, r1\n"
|
||||
" str r0, [r7, 0x4]\n"
|
||||
" mov r2, r8\n"
|
||||
" ldr r0, [r2, 0x4]\n"
|
||||
" adds r0, r1\n"
|
||||
" str r0, [r2, 0x4]\n"
|
||||
" ldr r0, [sp]\n"
|
||||
" ldr r1, _08099520\n"
|
||||
" adds r0, r1\n"
|
||||
" str r0, [sp]\n"
|
||||
" ldr r0, [r7, 0x4]\n"
|
||||
" adds r0, r1\n"
|
||||
" str r0, [r7, 0x4]\n"
|
||||
" ldr r0, [sp, 0x8]\n"
|
||||
" movs r2, 0x80\n"
|
||||
" lsls r2, 3\n"
|
||||
" adds r0, r2\n"
|
||||
" str r0, [sp, 0x8]\n"
|
||||
" mov r0, r8\n"
|
||||
" ldr r1, [r0, 0x4]\n"
|
||||
" adds r1, r2\n"
|
||||
" str r1, [r0, 0x4]\n"
|
||||
" ldr r2, [sp, 0x8]\n"
|
||||
" ldr r0, [sp]\n"
|
||||
" subs r0, r2, r0\n"
|
||||
" str r0, [sp, 0x20]\n"
|
||||
" ldr r0, [r7, 0x4]\n"
|
||||
" subs r0, r1, r0\n"
|
||||
" str r0, [sp, 0x24]\n"
|
||||
" movs r4, 0\n"
|
||||
" movs r5, 0\n"
|
||||
" movs r0, 0x4\n"
|
||||
" bl sub_80999E8\n"
|
||||
" mov r9, r5\n"
|
||||
" b _08099604\n"
|
||||
" .align 2, 0\n"
|
||||
"_08099520: .4byte 0xfffffc00\n"
|
||||
"_08099524:\n"
|
||||
" ldr r0, _0809953C\n"
|
||||
" ldrh r1, [r0, 0x2]\n"
|
||||
" ldrh r6, [r0]\n"
|
||||
" movs r0, 0x4\n"
|
||||
" ands r1, r0\n"
|
||||
" cmp r1, 0\n"
|
||||
" beq _08099540\n"
|
||||
" bl sub_80999FC\n"
|
||||
" movs r1, 0x1\n"
|
||||
" mov r9, r1\n"
|
||||
" b _080995AE\n"
|
||||
" .align 2, 0\n"
|
||||
"_0809953C: .4byte gRealInputs\n"
|
||||
"_08099540:\n"
|
||||
" adds r0, r6, 0\n"
|
||||
" bl sub_809CFE8\n"
|
||||
" lsls r0, 24\n"
|
||||
" asrs r1, r0, 24\n"
|
||||
" movs r2, 0x1\n"
|
||||
" negs r2, r2\n"
|
||||
" cmp r1, r2\n"
|
||||
" beq _0809959A\n"
|
||||
" add r0, sp, 0x10\n"
|
||||
" movs r2, 0x80\n"
|
||||
" lsls r2, 1\n"
|
||||
" bl SetVecFromDirectionSpeed\n"
|
||||
" ldr r2, [sp, 0x10]\n"
|
||||
" ldr r3, [sp, 0x14]\n"
|
||||
" movs r0, 0x2\n"
|
||||
" ands r6, r0\n"
|
||||
" cmp r6, 0\n"
|
||||
" beq _0809956A\n"
|
||||
" movs r0, 0x4\n"
|
||||
"_0809956A:\n"
|
||||
" adds r1, r0, 0\n"
|
||||
" muls r1, r2\n"
|
||||
" adds r1, r4\n"
|
||||
" adds r4, r1, 0\n"
|
||||
" muls r0, r3\n"
|
||||
" adds r5, r0\n"
|
||||
" cmp r1, 0\n"
|
||||
" bge _0809957E\n"
|
||||
" movs r4, 0\n"
|
||||
" b _08099588\n"
|
||||
"_0809957E:\n"
|
||||
" ldr r0, [sp, 0x20]\n"
|
||||
" cmp r4, r0\n"
|
||||
" blt _08099588\n"
|
||||
" adds r4, r0, 0\n"
|
||||
" subs r4, 0x1\n"
|
||||
"_08099588:\n"
|
||||
" cmp r5, 0\n"
|
||||
" bge _08099590\n"
|
||||
" movs r5, 0\n"
|
||||
" b _0809959A\n"
|
||||
"_08099590:\n"
|
||||
" ldr r1, [sp, 0x24]\n"
|
||||
" cmp r5, r1\n"
|
||||
" blt _0809959A\n"
|
||||
" adds r5, r1, 0\n"
|
||||
" subs r5, 0x1\n"
|
||||
"_0809959A:\n"
|
||||
" ldr r0, [sp]\n"
|
||||
" adds r0, r4\n"
|
||||
" str r0, [sp, 0x18]\n"
|
||||
" ldr r0, [r7, 0x4]\n"
|
||||
" adds r0, r5\n"
|
||||
" add r1, sp, 0x18\n"
|
||||
" str r0, [r1, 0x4]\n"
|
||||
" movs r0, 0\n"
|
||||
" bl sub_809D158\n"
|
||||
"_080995AE:\n"
|
||||
" bl sub_809D25C\n"
|
||||
" bl sub_80A59DC\n"
|
||||
" bl DrawDialogueBoxString\n"
|
||||
" movs r0, 0\n"
|
||||
" movs r1, 0\n"
|
||||
" bl sub_8005838\n"
|
||||
" bl sub_80060EC\n"
|
||||
" ldr r0, _08099620\n"
|
||||
" ldr r0, [r0]\n"
|
||||
" ldrb r0, [r0, 0xA]\n"
|
||||
" bl nullsub_8\n"
|
||||
" bl sub_8005180\n"
|
||||
" bl sub_8099BE4\n"
|
||||
" bl sub_8099744\n"
|
||||
" bl UpdateSoundEffectCounters\n"
|
||||
" bl WaitForNextFrameAndAdvanceRNG\n"
|
||||
" bl LoadBufferedInputs\n"
|
||||
" bl nullsub_120\n"
|
||||
" bl sub_80A5E70\n"
|
||||
" bl xxx_call_update_bg_vram\n"
|
||||
" bl CopySpritesToOam\n"
|
||||
" bl sub_8005304\n"
|
||||
" bl sub_8099750\n"
|
||||
" bl DoScheduledMemCopies\n"
|
||||
"_08099604:\n"
|
||||
" bl xxx_call_update_bg_sound_input\n"
|
||||
" movs r0, 0\n"
|
||||
" bl ResetSprites\n"
|
||||
" mov r2, r9\n"
|
||||
" cmp r2, 0\n"
|
||||
" beq _08099524\n"
|
||||
" bl sub_8099B94\n"
|
||||
" lsls r0, 24\n"
|
||||
" cmp r0, 0\n"
|
||||
" bne _080995AE\n"
|
||||
" b _08099454\n"
|
||||
" .align 2, 0\n"
|
||||
"_08099620: .4byte gGameOptionsRef\n"
|
||||
"_08099624:\n"
|
||||
" movs r0, 0x10\n"
|
||||
" bl FadeOutAllMusic\n"
|
||||
" bl FreeGroundMapAction\n"
|
||||
" bl sub_8099768\n"
|
||||
" bl nullsub_103\n"
|
||||
" add sp, 0x28\n"
|
||||
" pop {r3-r5}\n"
|
||||
" mov r8, r3\n"
|
||||
" mov r9, r4\n"
|
||||
" mov r10, r5\n"
|
||||
" pop {r4-r7}\n"
|
||||
" pop {r0}\n"
|
||||
" bx r0\n");
|
||||
}
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "pokemon.h"
|
||||
#include "friend_area.h"
|
||||
#include "random.h"
|
||||
#include "code_8099328.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "debug.h"
|
||||
#include "other_random.h"
|
||||
|
||||
@@ -36,8 +36,6 @@ EWRAM_DATA u8 gUnknown_2039950 = 0;
|
||||
EWRAM_INIT bool8 gUnknown_203B49C = {0};
|
||||
EWRAM_INIT u8 gUnknown_203B49D = {0};
|
||||
|
||||
#include "data/ground_main.h"
|
||||
|
||||
extern void sub_809B57C();
|
||||
extern void GroundScript_Unlock();
|
||||
extern void sub_809D25C();
|
||||
@@ -66,7 +64,6 @@ extern s16 sub_80A2654(s16 r0);
|
||||
extern void sub_809A71C(s32);
|
||||
extern bool8 sub_809AFAC(void);
|
||||
extern bool8 sub_80048BC(void);
|
||||
void FadeOutAllMusic(u16 speed);
|
||||
extern u8 sub_80023E4(u32);
|
||||
extern bool8 sub_809C740(void);
|
||||
extern bool8 sub_8099B94(void);
|
||||
@@ -115,8 +112,6 @@ extern void sub_809CA20(void);
|
||||
extern void sub_80A6E80(void);
|
||||
extern void sub_8099BE4(void);
|
||||
extern void sub_8099744(void);
|
||||
extern void UpdateSoundEffectCounters(void);
|
||||
extern void IncrementPlayTime(struct PlayTimeStruct *);
|
||||
extern void WaitForNextFrameAndAdvanceRNG(void);
|
||||
extern void LoadBufferedInputs(void);
|
||||
extern void nullsub_120(void);
|
||||
@@ -566,7 +561,7 @@ bool8 GroundMainGroundRequest(s32 r0, s32 r1, s32 r2)
|
||||
s32 temp = (s16) r0; // force a asr shift
|
||||
if(gUnknown_20398A8 == 0)
|
||||
{
|
||||
Log(0, sFmtGroundRequest, temp, r2);
|
||||
Log(0, "GroundMain ground request %3d %3d", temp, r2);
|
||||
gUnknown_20398A8 = 1;
|
||||
gUnknown_20398AC = 1;
|
||||
gUnknown_20398B0 = r2;
|
||||
@@ -618,7 +613,7 @@ bool8 GroundMainRescueRequest(s32 r0, s32 r1)
|
||||
s32 r5 = r2;
|
||||
if(gUnknown_20398A8 == 0)
|
||||
{
|
||||
Log(0, sFmtRescueRequest, r2, r1);
|
||||
Log(0, "GroundMain recue request %3d %3d", r2, r1);
|
||||
if(gUnknown_203B49D != 0)
|
||||
{
|
||||
gUnknown_20398A8 = 7;
|
||||
@@ -648,7 +643,7 @@ UNUSED static bool8 GroundMainUserRescueRequest(u32 r0)
|
||||
{
|
||||
if (gUnknown_20398A8 == 0) {
|
||||
if(gUnknown_203B49D != 0) {
|
||||
Log(0, sFmtUserRescueRequest, r0);
|
||||
Log(0, "GroundMain user rescue request %3d", r0);
|
||||
gUnknown_20398A8 = 7;
|
||||
gUnknown_20398AC = 1;
|
||||
gUnknown_20398B0 = r0;
|
||||
@@ -662,7 +657,7 @@ UNUSED static bool8 GroundMainUserRescueRequest(u32 r0)
|
||||
bool32 GroundMainGameEndRequest(u32 r0)
|
||||
{
|
||||
if (gUnknown_20398A8 == 0) {
|
||||
Log(0, sFmtGameEndRequest, r0);
|
||||
Log(0, "GroundMain game end request %3d", r0);
|
||||
gUnknown_20398A8 = 9;
|
||||
gUnknown_20398AC = 1;
|
||||
gUnknown_20398B0 = r0;
|
||||
@@ -675,7 +670,7 @@ bool32 GroundMainGameEndRequest(u32 r0)
|
||||
bool32 GroundMainGameCancelRequest(u32 r0)
|
||||
{
|
||||
if (gUnknown_20398A8 == 0) {
|
||||
Log(0, sFmtGameCancelRequest, r0);
|
||||
Log(0, "GroundMain game cancel request %3d", r0);
|
||||
gUnknown_20398A8 = 10;
|
||||
gUnknown_20398AC = 1;
|
||||
gUnknown_20398B0 = r0;
|
||||
@@ -695,7 +690,7 @@ bool8 GetScriptMode(void)
|
||||
return gScriptMode;
|
||||
}
|
||||
|
||||
s16 sub_8098FA0(void)
|
||||
UNUSED static s16 sub_8098FA0(void)
|
||||
{
|
||||
return GetScriptVarValue(NULL, GROUND_PLACE);
|
||||
}
|
||||
@@ -741,16 +736,13 @@ s16 sub_8098FCC(u32 unused)
|
||||
return iVar3->unk4;
|
||||
}
|
||||
|
||||
const char *sub_80990B8(void)
|
||||
UNUSED static const char *sub_80990B8(void)
|
||||
{
|
||||
s16 index;
|
||||
index = sub_8098FCC(0xB);
|
||||
if(index != -1)
|
||||
{
|
||||
s16 index = sub_8098FCC(0xB);
|
||||
if (index != -1) {
|
||||
return sub_80A2B18(gGroundConversion_811BAF4[index].unk2);
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
return sub_8098FB4();
|
||||
}
|
||||
}
|
||||
@@ -865,3 +857,81 @@ void sub_809927C(u8 param_1)
|
||||
gUnknown_20398C8.sub0.unk4 = 0;
|
||||
gUnknown_20398C8.sub0.unkD = 0;
|
||||
}
|
||||
|
||||
bool8 sub_80992E0(s16 *param_1, s16 *param_2)
|
||||
{
|
||||
s32 sVar2;
|
||||
|
||||
sVar2 = (s16)GetScriptVarValue(NULL,DUNGEON_ENTER);
|
||||
if ((((sVar2 != -1) && (sVar2 != 0x50)) && (sVar2 != 0x51)) && (sVar2 != 0x52)) {
|
||||
*param_1 = sVar2;
|
||||
*param_2 = GetScriptVarValue(NULL,DUNGEON_ENTER_INDEX);
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
*param_1 = -1;
|
||||
*param_2 = -1;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8099328(u8 *dungeonId)
|
||||
{
|
||||
s16 script_disc;
|
||||
const DungeonInfo* dungeonInfo;
|
||||
|
||||
script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER);
|
||||
if (script_disc == 0x51) {
|
||||
script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER_INDEX);
|
||||
dungeonInfo = GetDungeonInfo_80A2608(script_disc);
|
||||
if (dungeonInfo->dungeonIndex < 0x3f) {
|
||||
*dungeonId = dungeonInfo->dungeonIndex;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8099360(u8 *dungeonId)
|
||||
{
|
||||
s16 script_disc;
|
||||
const DungeonInfo* dungeonInfo;
|
||||
|
||||
script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER);
|
||||
if (script_disc == 0x52) {
|
||||
script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER_INDEX);
|
||||
dungeonInfo = GetDungeonInfo_80A2608(script_disc);
|
||||
*dungeonId = dungeonInfo->dungeonIndex;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8099394(u8 *param)
|
||||
{
|
||||
s16 script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER);
|
||||
if (script_disc == 0x50) {
|
||||
script_disc = GetScriptVarValue(NULL, DUNGEON_ENTER_INDEX);
|
||||
*param = script_disc;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80993C0(bool8 param)
|
||||
{
|
||||
gUnknown_20398B8 = (param == FALSE);
|
||||
}
|
||||
|
||||
extern void sub_80A4B38(void);
|
||||
extern void sub_80A4B54(void);
|
||||
|
||||
void sub_80993D8(void)
|
||||
{
|
||||
sub_80A4B38();
|
||||
}
|
||||
|
||||
void sub_80993E4(void)
|
||||
{
|
||||
sub_80A4B54();
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "code_8094F88.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "code_8097670.h"
|
||||
#include "code_8099328.h"
|
||||
#include "code_8099360.h"
|
||||
#include "code_80A26CC.h"
|
||||
#include "cpu.h"
|
||||
@@ -24,6 +23,7 @@
|
||||
#include "exclusive_pokemon.h"
|
||||
#include "friend_area.h"
|
||||
#include "game_options.h"
|
||||
#include "ground_main.h"
|
||||
#include "main_loops.h"
|
||||
#include "main_menu1.h"
|
||||
#include "main_menu2.h"
|
||||
|
||||
720
src/palette_util.c
Normal file
720
src/palette_util.c
Normal file
@@ -0,0 +1,720 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "bg_palette_buffer.h"
|
||||
#include "structs/str_3000400.h"
|
||||
|
||||
extern void sub_80039B8(void);
|
||||
extern void TransferBGPaletteBuffer(void);
|
||||
extern void sub_80037C8(u16, u32, unkStruct_3000400);
|
||||
extern void sub_8003664(u16 param_1, u16 param_2);
|
||||
extern void sub_80036AC(u16, u32, unkStruct_3000400);
|
||||
extern void sub_80036F4(u16, u32, unkStruct_3000400);
|
||||
extern void sub_8003780(u16, u32, unkStruct_3000400);
|
||||
|
||||
struct UnkStruct_2039958
|
||||
{
|
||||
s32 unk0;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
u16 unk8;
|
||||
u16 unkA;
|
||||
u16 unkC;
|
||||
};
|
||||
|
||||
struct UnkStruct_2039978
|
||||
{
|
||||
u32 unk0;
|
||||
unkStruct_3000400 unk4;
|
||||
struct UnkStruct_2039958 unk8;
|
||||
};
|
||||
|
||||
static EWRAM_DATA struct UnkStruct_2039958 gUnknown_2039958 = {0};
|
||||
static EWRAM_DATA struct UnkStruct_2039958 gUnknown_2039968 = {0};
|
||||
static EWRAM_DATA struct UnkStruct_2039978 gUnknown_2039978 = {0};
|
||||
static EWRAM_DATA u8 gUnknown_2039990 = FALSE;
|
||||
static EWRAM_DATA s16 gUnknown_2039992 = 0;
|
||||
UNUSED static EWRAM_DATA s32 sUnused = 0;
|
||||
#define ARR_COUNT_2039998 33
|
||||
static EWRAM_DATA u16 gUnknown_2039998[ARR_COUNT_2039998] = {0};
|
||||
|
||||
void sub_809977C(void);
|
||||
static void sub_8099838(struct UnkStruct_2039958 *a0);
|
||||
static void sub_8099848(struct UnkStruct_2039958 *a0);
|
||||
static void sub_8099DD0(u16 a0);
|
||||
static void sub_8099E58(u16 a0);
|
||||
static void sub_8099E80(u16 a0, unkStruct_3000400 a1);
|
||||
|
||||
void sub_8099744(void)
|
||||
{
|
||||
sub_80039B8();
|
||||
}
|
||||
|
||||
void sub_8099750(void)
|
||||
{
|
||||
TransferBGPaletteBuffer();
|
||||
}
|
||||
|
||||
void sub_809975C(void)
|
||||
{
|
||||
sub_809977C();
|
||||
}
|
||||
|
||||
void sub_8099768(void)
|
||||
{
|
||||
sub_809977C();
|
||||
sub_8099744();
|
||||
sub_8099750();
|
||||
}
|
||||
|
||||
void sub_809977C(void)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
gUnknown_2039990 = FALSE;
|
||||
gUnknown_2039992 = 0;
|
||||
sub_8099838(&gUnknown_2039958);
|
||||
sub_8099838(&gUnknown_2039968);
|
||||
sub_8099838(&gUnknown_2039978.unk8);
|
||||
gUnknown_2039978.unk0 = 0;
|
||||
gUnknown_2039978.unk8.unkC = 0x100;
|
||||
gUnknown_2039958.unkC = 0;
|
||||
sub_8099DD0(0);
|
||||
gUnknown_2039968.unkC = 0x100;
|
||||
sub_8099E58(0x100);
|
||||
for (i = 0; i < ARR_COUNT_2039998; i++) {
|
||||
gUnknown_2039998[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80997F4(u16 a0, u32 a1)
|
||||
{
|
||||
gUnknown_2039998[a0] = a1;
|
||||
sub_8099848(&gUnknown_2039958);
|
||||
sub_8099848(&gUnknown_2039968);
|
||||
sub_8099848(&gUnknown_2039978.unk8);
|
||||
}
|
||||
|
||||
UNUSED static u32 sub_8099828(u16 a0)
|
||||
{
|
||||
return gUnknown_2039998[a0];
|
||||
}
|
||||
|
||||
static void sub_8099838(struct UnkStruct_2039958 *a0)
|
||||
{
|
||||
a0->unk0 = 1;
|
||||
a0->unkC = 0;
|
||||
a0->unk4 = 0;
|
||||
a0->unk6 = 0;
|
||||
}
|
||||
|
||||
static void sub_8099848(struct UnkStruct_2039958 *a0)
|
||||
{
|
||||
if (a0->unk0 == 0) {
|
||||
a0->unk0 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_809985C(struct UnkStruct_2039958 *a0, s32 a1)
|
||||
{
|
||||
if (a1 >= 0) {
|
||||
if (a1 == 0) {
|
||||
a0->unkC = 0x100;
|
||||
a0->unk0 = 1;
|
||||
}
|
||||
else {
|
||||
a0->unk0 = 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
a1 = 30;
|
||||
a0->unk0 = 2;
|
||||
}
|
||||
|
||||
a0->unk4 = a1;
|
||||
a0->unk6 = a1;
|
||||
}
|
||||
|
||||
static void sub_8099880(struct UnkStruct_2039958 *a0, s32 a1)
|
||||
{
|
||||
if (a1 >= 0) {
|
||||
if (a1 == 0) {
|
||||
a0->unkC = a1;
|
||||
a0->unk0 = 1;
|
||||
}
|
||||
else {
|
||||
a0->unk0 = 3;
|
||||
}
|
||||
}
|
||||
else {
|
||||
a1 = 30;
|
||||
a0->unk0 = 3;
|
||||
}
|
||||
|
||||
a0->unk4 = a1;
|
||||
a0->unk6 = a1;
|
||||
}
|
||||
|
||||
static void sub_80998A0(struct UnkStruct_2039958 *a0, s32 a1, u16 a2, u16 a3)
|
||||
{
|
||||
if (a1 < 0) a1 = 30;
|
||||
|
||||
if (a2 > a3) {
|
||||
a0->unk0 = 5;
|
||||
a0->unkA = a2 - a3;
|
||||
}
|
||||
else if (a2 < a3) {
|
||||
a0->unk0 = 4;
|
||||
a0->unkA = a3 - a2;
|
||||
}
|
||||
else {
|
||||
a0->unk0 = 1;
|
||||
a0->unkA = 0;
|
||||
}
|
||||
|
||||
a0->unk4 = a1;
|
||||
a0->unk6 = a1;
|
||||
a0->unkC = a2;
|
||||
a0->unk8 = a3;
|
||||
}
|
||||
|
||||
static bool8 sub_80998E0(struct UnkStruct_2039958 *a0)
|
||||
{
|
||||
switch (a0->unk0) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
a0->unk0 = 0;
|
||||
return TRUE;
|
||||
case 2:
|
||||
if (--a0->unk4 > 0) {
|
||||
u16 var = 0x100 - ((a0->unk4 << 8) / a0->unk6);
|
||||
if (a0->unkC < var) {
|
||||
a0->unkC = var;
|
||||
}
|
||||
}
|
||||
else {
|
||||
a0->unkC = 0x100;
|
||||
a0->unk0 = 0;
|
||||
}
|
||||
return TRUE;
|
||||
case 3:
|
||||
if (--a0->unk4 > 0) {
|
||||
u16 var = (a0->unk4 << 8) / a0->unk6;
|
||||
if (a0->unkC > var) {
|
||||
a0->unkC = var;
|
||||
}
|
||||
}
|
||||
else {
|
||||
a0->unkC = 0;
|
||||
a0->unk0 = 0;
|
||||
}
|
||||
return TRUE;
|
||||
case 4:
|
||||
if (--a0->unk4 > 0) {
|
||||
a0->unkC = a0->unk8 - ((a0->unk4 * a0->unkA) / a0->unk6);
|
||||
}
|
||||
else {
|
||||
a0->unkC = a0->unk8;
|
||||
a0->unk0 = 0;
|
||||
}
|
||||
return TRUE;
|
||||
case 5:
|
||||
if (--a0->unk4 > 0) {
|
||||
a0->unkC = a0->unk8 + ((a0->unk4 * a0->unkA) / a0->unk6);
|
||||
}
|
||||
else {
|
||||
a0->unkC = a0->unk8;
|
||||
a0->unk0 = 0;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_80999D4(s32 a0)
|
||||
{
|
||||
gUnknown_2039990 = TRUE;
|
||||
gUnknown_2039992 = a0;
|
||||
}
|
||||
|
||||
void sub_80999E8(s32 a0)
|
||||
{
|
||||
sub_809985C(&gUnknown_2039958, a0);
|
||||
}
|
||||
|
||||
void sub_80999FC(s32 a0)
|
||||
{
|
||||
sub_8099880(&gUnknown_2039958, a0);
|
||||
}
|
||||
|
||||
void sub_8099A10(s32 a1, u16 a2, u16 a3)
|
||||
{
|
||||
sub_80998A0(&gUnknown_2039958, a1, a2, a3);
|
||||
}
|
||||
|
||||
void sub_8099A34(s32 a0)
|
||||
{
|
||||
sub_809985C(&gUnknown_2039968, a0);
|
||||
}
|
||||
|
||||
void sub_8099A48(s32 a0)
|
||||
{
|
||||
sub_8099880(&gUnknown_2039968, a0);
|
||||
}
|
||||
|
||||
void sub_8099A5C(s32 a0, s32 a1, unkStruct_3000400 a2)
|
||||
{
|
||||
gUnknown_2039978.unk0 = a0;
|
||||
gUnknown_2039978.unk4 = a2;
|
||||
gUnknown_2039978.unk8.unkC = 0;
|
||||
sub_809985C(&gUnknown_2039978.unk8, a1);
|
||||
|
||||
switch (a0) {
|
||||
case 1:
|
||||
case 3:
|
||||
gUnknown_2039968.unkC = 0x100;
|
||||
gUnknown_2039958.unkC = 0x100;
|
||||
break;
|
||||
case 9:
|
||||
case 11:
|
||||
gUnknown_2039968.unkC = 0x100;
|
||||
break;
|
||||
case 5:
|
||||
case 7:
|
||||
case 13:
|
||||
case 14:
|
||||
gUnknown_2039958.unkC = 0x100;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8099AFC(s32 a0, s32 a1, unkStruct_3000400 a2)
|
||||
{
|
||||
gUnknown_2039978.unk0 = a0;
|
||||
gUnknown_2039978.unk4 = a2;
|
||||
gUnknown_2039978.unk8.unkC = 0x100;
|
||||
sub_8099880(&gUnknown_2039978.unk8, a1);
|
||||
|
||||
switch (a0) {
|
||||
case 2:
|
||||
case 4:
|
||||
gUnknown_2039968.unkC = 0;
|
||||
gUnknown_2039958.unkC = 0;
|
||||
break;
|
||||
case 10:
|
||||
case 12:
|
||||
gUnknown_2039968.unkC = 0;
|
||||
break;
|
||||
case 6:
|
||||
case 8:
|
||||
case 13:
|
||||
case 14:
|
||||
gUnknown_2039958.unkC = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_8099B94(void)
|
||||
{
|
||||
if (gUnknown_2039990)
|
||||
return TRUE;
|
||||
if (gUnknown_2039978.unk0 != 0) {
|
||||
return (gUnknown_2039978.unk8.unk0 != 0);
|
||||
}
|
||||
return (gUnknown_2039958.unk0 != 0 || gUnknown_2039968.unk0 != 0);
|
||||
}
|
||||
|
||||
void sub_8099BE4(void)
|
||||
{
|
||||
if (gUnknown_2039978.unk0 != 0 || gUnknown_2039978.unk8.unk0 != 0) {
|
||||
if (sub_80998E0(&gUnknown_2039978.unk8)) {
|
||||
sub_8099E80(gUnknown_2039978.unk8.unkC, gUnknown_2039978.unk4);
|
||||
}
|
||||
else if (gUnknown_2039978.unk8.unk0 == 0) {
|
||||
switch (gUnknown_2039978.unk0) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
case 3:
|
||||
case 5:
|
||||
case 7:
|
||||
case 9:
|
||||
case 11:
|
||||
if (gUnknown_2039978.unk8.unkC >= 256) {
|
||||
gUnknown_2039978.unk0 = 0;
|
||||
}
|
||||
else if (gUnknown_2039990) {
|
||||
s32 var = 0;
|
||||
switch (gUnknown_2039978.unk0) {
|
||||
case 1: var = 2; break;
|
||||
case 3: var = 4; break;
|
||||
case 5: var = 6; break;
|
||||
case 7: var = 8; break;
|
||||
}
|
||||
|
||||
if (var != 0) {
|
||||
sub_8099AFC(var, gUnknown_2039992, gUnknown_2039978.unk4);
|
||||
}
|
||||
else {
|
||||
gUnknown_2039978.unk0 = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 4:
|
||||
case 6:
|
||||
case 8:
|
||||
case 10:
|
||||
case 12:
|
||||
case 13:
|
||||
case 14:
|
||||
if (gUnknown_2039978.unk8.unkC == 0) {
|
||||
gUnknown_2039978.unk0 = 0;
|
||||
}
|
||||
else if (gUnknown_2039990) {
|
||||
sub_8099AFC(gUnknown_2039978.unk0, gUnknown_2039992, gUnknown_2039978.unk4);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (gUnknown_2039990) {
|
||||
bool8 r5 = TRUE;
|
||||
if (gUnknown_2039958.unkC != 0 || gUnknown_2039958.unk0 != 0) {
|
||||
r5 = FALSE;
|
||||
if (gUnknown_2039958.unk0 != 3) {
|
||||
sub_8099880(&gUnknown_2039958, gUnknown_2039992);
|
||||
}
|
||||
if (sub_80998E0(&gUnknown_2039958)) {
|
||||
sub_8099DD0(gUnknown_2039958.unkC);
|
||||
}
|
||||
}
|
||||
if (gUnknown_2039968.unkC != 0 || gUnknown_2039968.unk0 != 0) {
|
||||
r5 = FALSE;
|
||||
if (gUnknown_2039968.unk0 != 3) {
|
||||
sub_8099880(&gUnknown_2039968, gUnknown_2039992);
|
||||
}
|
||||
if (sub_80998E0(&gUnknown_2039968)) {
|
||||
sub_8099E58(gUnknown_2039968.unkC);
|
||||
}
|
||||
}
|
||||
|
||||
if (r5) {
|
||||
gUnknown_2039990 = FALSE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (sub_80998E0(&gUnknown_2039958)) {
|
||||
sub_8099DD0(gUnknown_2039958.unkC);
|
||||
}
|
||||
if (sub_80998E0(&gUnknown_2039968)) {
|
||||
sub_8099E58(gUnknown_2039968.unkC);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8099DD0(u16 a0)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 14; i++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i, 0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003664(i, a0);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 31; i++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i, 0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003664(i, a0);
|
||||
}
|
||||
}
|
||||
|
||||
sub_8003664(32, a0);
|
||||
}
|
||||
|
||||
static void sub_8099E58(u16 a0)
|
||||
{
|
||||
sub_8003664(15, a0);
|
||||
sub_8003664(14, a0);
|
||||
sub_8003664(31, a0);
|
||||
}
|
||||
|
||||
static void sub_8099E80(u16 param_1,unkStruct_3000400 param_2)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
switch (gUnknown_2039978.unk0) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
for (i = 0; i < 16; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036AC(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 32; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036AC(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
for (i = 14; i < 16; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036AC(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 31; i < 32; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036AC(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
for (i = 0; i < 14; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036AC(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 31; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036AC(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
for (i = 0; i < 16; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036F4(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 32; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036F4(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
for (i = 14; i < 16; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036F4(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 31; i < 32; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036F4(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
for (i = 0; i < 14; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036F4(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 31; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_80036F4(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
for (i = 0; i < 16; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003780(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 32; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003780(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
for (i = 14; i < 16; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003780(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 31; i < 32; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003780(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
for (i = 0; i < 14; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003780(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 31; i++) {
|
||||
if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else {
|
||||
sub_8003780(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
for (i = 0; i < 16; i ++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,param_1);
|
||||
}
|
||||
else {
|
||||
sub_80037C8(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 32; i ++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,param_1);
|
||||
}
|
||||
else {
|
||||
sub_80037C8(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
for (i = 14; i < 16; i ++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,param_1);
|
||||
}
|
||||
else {
|
||||
sub_80037C8(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 31; i < 32; i ++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,param_1);
|
||||
}
|
||||
else {
|
||||
sub_80037C8(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
case 14:
|
||||
switch (gUnknown_2039978.unk0) {
|
||||
case 13:
|
||||
param_2.unk0[0] = 0x90;
|
||||
param_2.unk0[1] = 0x90;
|
||||
param_2.unk0[2] = 0xFF;
|
||||
param_2.unk0[3] = 0xFF;
|
||||
break;
|
||||
case 14:
|
||||
param_2.unk0[0] = 0xFF;
|
||||
param_2.unk0[1] = 0xC0;
|
||||
param_2.unk0[2] = 0x80;
|
||||
param_2.unk0[3] = 0xFF;
|
||||
break;
|
||||
}
|
||||
// NOTE: fallthrough needed here
|
||||
case 8:
|
||||
for (i = 0; i < 14; i ++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,param_1);
|
||||
}
|
||||
else {
|
||||
sub_80037C8(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 16; i < 31; i ++) {
|
||||
if (gUnknown_2039998[i] & 1) {
|
||||
sub_8003664(i,0x100);
|
||||
}
|
||||
else if (gUnknown_2039998[i] & 2) {
|
||||
sub_8003664(i,param_1);
|
||||
}
|
||||
else {
|
||||
sub_80037C8(i,param_1,param_2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "code_8094F88.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "code_80972F4.h"
|
||||
#include "code_8099328.h"
|
||||
#include "code_8099360.h"
|
||||
#include "code_80A26CC.h"
|
||||
#include "input.h"
|
||||
@@ -19,6 +18,7 @@
|
||||
#include "string_format.h"
|
||||
#include "text_1.h"
|
||||
#include "text_3.h"
|
||||
#include "ground_main.h"
|
||||
|
||||
static EWRAM_INIT unkStruct_203B330 *sUnknown_203B330 = {NULL};
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "code_803B050.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "code_80972F4.h"
|
||||
#include "code_8099328.h"
|
||||
#include "code_8099360.h"
|
||||
#include "common_strings.h"
|
||||
#include "input.h"
|
||||
@@ -16,6 +15,7 @@
|
||||
#include "text_1.h"
|
||||
#include "wonder_mail_802C4C8.h"
|
||||
#include "wonder_mail_802D098.h"
|
||||
#include "ground_main.h"
|
||||
|
||||
enum WonderMailRescueStates
|
||||
{
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
.space 4
|
||||
.include "src/ground_main.o"
|
||||
.space 4
|
||||
.include "src/code_8099360.o"
|
||||
.include "src/palette_util.o"
|
||||
.include "src/code_809A560.o"
|
||||
.include "src/code_809C5C4.o"
|
||||
.space 4
|
||||
|
||||
Reference in New Issue
Block a user