mirror of
https://github.com/pret/pmd-red.git
synced 2026-07-16 17:32:46 -05:00
Merge pull request #140 from Kermalis/kermalis-credits
Complete credits
This commit is contained in:
commit
e802bce770
274
asm/credits.s
274
asm/credits.s
|
|
@ -1,274 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start DrawCredits
|
||||
DrawCredits:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x84
|
||||
mov r8, r0
|
||||
adds r5, r1, 0
|
||||
ldr r4, _080354C0
|
||||
movs r0, 0x6C
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
movs r1, 0
|
||||
str r1, [r0, 0x60]
|
||||
str r5, [r0, 0x64]
|
||||
mov r1, r8
|
||||
str r1, [r0, 0x68]
|
||||
ldr r2, _080354C4
|
||||
mov r12, r2
|
||||
mov r9, r4
|
||||
movs r3, 0
|
||||
movs r2, 0x3
|
||||
_08035472:
|
||||
ldr r1, [r4]
|
||||
adds r1, r3
|
||||
mov r0, r12
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
adds r3, 0x18
|
||||
subs r2, 0x1
|
||||
cmp r2, 0
|
||||
bge _08035472
|
||||
mov r0, r9
|
||||
ldr r1, [r0]
|
||||
ldr r0, _080354C8
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
bl ResetUnusedInputStruct
|
||||
mov r1, r9
|
||||
ldr r0, [r1]
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
movs r0, 0x2
|
||||
bl sub_8099690
|
||||
movs r0, 0
|
||||
bl sub_80073B8
|
||||
mov r2, r8
|
||||
lsls r0, r2, 2
|
||||
ldr r1, _080354CC
|
||||
adds r0, r1
|
||||
ldr r1, [r0]
|
||||
movs r5, 0
|
||||
b _08035542
|
||||
.align 2, 0
|
||||
_080354C0: .4byte gUnknown_203B340
|
||||
_080354C4: .4byte gUnknown_80E4A10
|
||||
_080354C8: .4byte gUnknown_80E4A28
|
||||
_080354CC: .4byte gCreditsTable
|
||||
_080354D0:
|
||||
ldr r2, [r1, 0x8]
|
||||
movs r3, 0x4
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r0, 0
|
||||
blt _080354DE
|
||||
adds r5, r0, 0
|
||||
b _080354E4
|
||||
_080354DE:
|
||||
movs r6, 0x4
|
||||
ldrsh r0, [r1, r6]
|
||||
subs r5, r0
|
||||
_080354E4:
|
||||
movs r7, 0x2
|
||||
ldrsh r6, [r1, r7]
|
||||
movs r3, 0
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r0, 0x1
|
||||
beq _080354FA
|
||||
cmp r0, 0x2
|
||||
beq _08035514
|
||||
adds r4, r1, 0
|
||||
adds r4, 0xC
|
||||
b _08035532
|
||||
_080354FA:
|
||||
add r3, sp, 0x4
|
||||
ldrb r0, [r2]
|
||||
adds r4, r1, 0
|
||||
adds r4, 0xC
|
||||
cmp r0, 0
|
||||
beq _0803552C
|
||||
_08035506:
|
||||
strb r0, [r3]
|
||||
adds r2, 0x1
|
||||
adds r3, 0x1
|
||||
ldrb r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08035506
|
||||
b _0803552C
|
||||
_08035514:
|
||||
add r3, sp, 0x4
|
||||
ldrb r0, [r2]
|
||||
adds r4, r1, 0
|
||||
adds r4, 0xC
|
||||
cmp r0, 0
|
||||
beq _0803552C
|
||||
_08035520:
|
||||
strb r0, [r3]
|
||||
adds r2, 0x1
|
||||
adds r3, 0x1
|
||||
ldrb r0, [r2]
|
||||
cmp r0, 0
|
||||
bne _08035520
|
||||
_0803552C:
|
||||
movs r0, 0
|
||||
strb r0, [r3]
|
||||
add r2, sp, 0x4
|
||||
_08035532:
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r6, 0
|
||||
adds r1, r5, 0
|
||||
movs r3, 0
|
||||
bl xxx_call_draw_string
|
||||
adds r1, r4, 0
|
||||
_08035542:
|
||||
ldr r0, [r1, 0x8]
|
||||
cmp r0, 0
|
||||
bne _080354D0
|
||||
movs r0, 0
|
||||
bl sub_80073E0
|
||||
movs r0, 0
|
||||
bl SelectCharmap
|
||||
ldr r2, _08035570
|
||||
movs r0, 0x9
|
||||
movs r1, 0
|
||||
ldr r2, [r2]
|
||||
bl sub_8099AFC
|
||||
movs r0, 0x1
|
||||
add sp, 0x84
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08035570: .4byte gUnknown_80E4A40
|
||||
thumb_func_end DrawCredits
|
||||
|
||||
thumb_func_start sub_8035574
|
||||
sub_8035574:
|
||||
push {r4,lr}
|
||||
ldr r1, _0803558C
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, 0x60]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x4
|
||||
bhi _08035654
|
||||
lsls r0, 2
|
||||
ldr r1, _08035590
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0803558C: .4byte gUnknown_203B340
|
||||
_08035590: .4byte _08035594
|
||||
.align 2, 0
|
||||
_08035594:
|
||||
.4byte _080355A8
|
||||
.4byte _080355D0
|
||||
.4byte _080355E8
|
||||
.4byte _08035610
|
||||
.4byte _08035638
|
||||
_080355A8:
|
||||
bl sub_8099B94
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08035654
|
||||
ldr r0, _080355C8
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x60]
|
||||
ldr r2, _080355CC
|
||||
movs r0, 0x9
|
||||
movs r1, 0x1E
|
||||
ldr r2, [r2]
|
||||
bl sub_8099A5C
|
||||
b _08035654
|
||||
.align 2, 0
|
||||
_080355C8: .4byte gUnknown_203B340
|
||||
_080355CC: .4byte gUnknown_80E4A40
|
||||
_080355D0:
|
||||
bl sub_8099B94
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08035654
|
||||
ldr r0, _080355E4
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x2
|
||||
str r0, [r1, 0x60]
|
||||
b _08035654
|
||||
.align 2, 0
|
||||
_080355E4: .4byte gUnknown_203B340
|
||||
_080355E8:
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x64]
|
||||
cmp r0, 0
|
||||
bgt _08035600
|
||||
movs r0, 0x3
|
||||
str r0, [r1, 0x60]
|
||||
ldr r2, _0803560C
|
||||
movs r0, 0x9
|
||||
movs r1, 0x1E
|
||||
ldr r2, [r2]
|
||||
bl sub_8099AFC
|
||||
_08035600:
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x64]
|
||||
subs r0, 0x1
|
||||
str r0, [r1, 0x64]
|
||||
b _08035654
|
||||
.align 2, 0
|
||||
_0803560C: .4byte gUnknown_80E4A40
|
||||
_08035610:
|
||||
bl sub_8099B94
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08035654
|
||||
bl ResetUnusedInputStruct
|
||||
movs r0, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, _08035634
|
||||
ldr r1, [r0]
|
||||
movs r0, 0x4
|
||||
str r0, [r1, 0x60]
|
||||
b _08035654
|
||||
.align 2, 0
|
||||
_08035634: .4byte gUnknown_203B340
|
||||
_08035638:
|
||||
movs r0, 0
|
||||
bl sub_8099690
|
||||
ldr r2, _08035650
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
ldr r2, [r2]
|
||||
bl sub_8099A5C
|
||||
movs r0, 0x3
|
||||
b _08035656
|
||||
.align 2, 0
|
||||
_08035650: .4byte gUnknown_80E4A40
|
||||
_08035654:
|
||||
movs r0, 0
|
||||
_08035656:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8035574
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef GUARD_INPUT_H
|
||||
#define GUARD_INPUT_H
|
||||
|
||||
// size: 0x10
|
||||
struct Inputs
|
||||
{
|
||||
/* 0x0 */ u16 held;
|
||||
|
|
@ -8,46 +9,47 @@ struct Inputs
|
|||
/* 0x4 */ u16 repeated;
|
||||
/* 0x6 */ u16 shortPress;
|
||||
/* 0x8 */ u16 heldDpad;
|
||||
/* 0xA..0xB - padding */
|
||||
/* 0xC */ s32 repeatTimerDpad;
|
||||
};
|
||||
|
||||
extern struct Inputs gRealInputs;
|
||||
|
||||
// size: 0x8
|
||||
struct InputTimers
|
||||
{
|
||||
/* 0x0 */ s16 holdTimerB;
|
||||
/* 0x2 */ s16 holdTimerR;
|
||||
/* 0x4 */ u16 unk4;
|
||||
/* 0x6 */ u16 unk6;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
// size: 0x2C
|
||||
struct UnusedInputStruct
|
||||
{
|
||||
/* 0x0 */ u16 unk0;
|
||||
/* 0x2 */ u16 unk2;
|
||||
/* 0x4 */ u16 unk4;
|
||||
/* 0x6 */ u16 unk6;
|
||||
/* 0x8 */ u16 unk8;
|
||||
/* 0xA */ u16 unkA;
|
||||
/* 0xC */ u16 unkC;
|
||||
/* 0xE */ u16 unkE;
|
||||
/* 0x10 */ u16 unk10;
|
||||
/* 0x12 */ u16 unk12;
|
||||
/* 0x14 */ u16 unk14;
|
||||
/* 0x16 */ u16 unk16;
|
||||
/* 0x18 */ u16 unk18;
|
||||
/* 0x1A */ u16 unk1A;
|
||||
/* 0x1C */ u16 unk1C;
|
||||
/* 0x1E */ u16 unk1E;
|
||||
/* 0x20 */ u32 unk20;
|
||||
/* 0x24 */ u16 unk24;
|
||||
/* 0x24 */ u16 unk26;
|
||||
/* 0x28 */ u8 unk28;
|
||||
/* 0x29 */ u8 unk29;
|
||||
/* 0x2A..0x2B - padding */
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
u16 unk8;
|
||||
u16 unkA;
|
||||
u16 unkC;
|
||||
u16 unkE;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u16 unk14;
|
||||
u16 unk16;
|
||||
u16 unk18;
|
||||
u16 unk1A;
|
||||
u16 unk1C;
|
||||
u16 unk1E;
|
||||
u32 unk20;
|
||||
u16 unk24;
|
||||
u16 unk26;
|
||||
u8 unk28;
|
||||
u8 unk29;
|
||||
};
|
||||
|
||||
// size: 0xC
|
||||
struct MenuInputStructSub
|
||||
{
|
||||
u8 unk0;
|
||||
|
|
@ -60,27 +62,28 @@ struct MenuInputStructSub
|
|||
s16 unkA;
|
||||
};
|
||||
|
||||
// size: 0x2C
|
||||
struct MenuInputStruct
|
||||
{
|
||||
s32 unk0;
|
||||
/* 0x4 */ u16 unk4;
|
||||
/* 0x6 */ s16 unk6;
|
||||
/* 0x8 */ u16 unk8;
|
||||
/* 0x8 */ u16 unkA;
|
||||
/* 0xC */ u16 unkC;
|
||||
/* 0xE */ u16 unkE;
|
||||
/* 0x10 */ u32 unk10;
|
||||
/* 0x14 */ s16 unk14;
|
||||
/* 0x16 */ u16 unk16;
|
||||
u16 unk4;
|
||||
s16 unk6;
|
||||
u16 unk8;
|
||||
u16 unkA;
|
||||
u16 unkC;
|
||||
u16 unkE;
|
||||
u32 unk10;
|
||||
s16 unk14;
|
||||
u16 unk16;
|
||||
/* 0x18 */ s16 menuIndex;
|
||||
/* 0x1A */ s16 unk1A;
|
||||
/* 0x1C */ s16 unk1C;
|
||||
/* 0x1E */ s16 unk1E;
|
||||
/* 0x20 */ s16 unk20;
|
||||
/* 0x22 */ s16 unk22;
|
||||
/* 0x24 */ u16 unk24;
|
||||
u16 unk26;
|
||||
/* 0x28 */ struct MenuInputStructSub unk28;
|
||||
s16 unk1A;
|
||||
s16 unk1C;
|
||||
s16 unk1E;
|
||||
s16 unk20;
|
||||
s16 unk22;
|
||||
u16 unk24;
|
||||
u16 unk26;
|
||||
struct MenuInputStructSub unk28;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,18 +3,22 @@
|
|||
|
||||
#define HEAP_SIZE 0x24000
|
||||
|
||||
// size: 0x8
|
||||
struct HeapSettings
|
||||
{
|
||||
/* 0x0 */ u8 *start;
|
||||
/* 0x4 */ u32 size;
|
||||
};
|
||||
|
||||
struct HeapMemoryBlock {
|
||||
// size: 0xC
|
||||
struct HeapMemoryBlock
|
||||
{
|
||||
/* 0x0 */ u8 *start;
|
||||
/* 0x4 */ s32 size;
|
||||
/* 0x8 */ s32 allocatedSize;
|
||||
};
|
||||
|
||||
// size: 0x10
|
||||
struct HeapFreeListElement
|
||||
{
|
||||
/* 0x0 */ u32 unk_atb;
|
||||
|
|
@ -23,6 +27,7 @@ struct HeapFreeListElement
|
|||
/* 0xC */ struct HeapMemoryBlock block;
|
||||
};
|
||||
|
||||
// size: 0x1C
|
||||
struct HeapDescriptor
|
||||
{
|
||||
u32 unk0;
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ struct UnkTextStruct2
|
|||
};
|
||||
|
||||
void LoadCharmaps(void);
|
||||
void SelectCharmap(u32);
|
||||
u32 xxx_update_some_bg_tiles(u32 a0);
|
||||
void sub_8006438(const struct UnkTextStruct2 *a0, u8 a1, u8 a2, u32 *a3);
|
||||
void sub_8006554(void *a0, void *a1, void *a2, void *a3, u32 a4, const struct UnkTextStruct2 *a5, u8 a6, u32 a7, u32 *a8, u32 a9);
|
||||
|
|
|
|||
|
|
@ -152,7 +152,6 @@ SECTIONS {
|
|||
src/code_8031D70.o(.text);
|
||||
src/adventure_log.o(.text);
|
||||
src/friend_rescue.o(.text);
|
||||
asm/credits.o(.text);
|
||||
src/credits.o(.text);
|
||||
src/main_menu.o(.text);
|
||||
src/trade_items_menu.o(.text);
|
||||
|
|
|
|||
186
src/credits.c
186
src/credits.c
|
|
@ -1,39 +1,184 @@
|
|||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
|
||||
struct unkStruct_203B344
|
||||
// size: 0x6C
|
||||
struct unkCreditsStruct_203B340
|
||||
{
|
||||
u32 state; // state variable
|
||||
u32 unk4; // timer??
|
||||
struct UnkTextStruct2 unk0[4];
|
||||
s32 unk60; // Unsure if s32/u32/ptr
|
||||
s32 unk64;
|
||||
/* 0x68 */ s32 creditsCategoryIndex;
|
||||
};
|
||||
|
||||
struct unkStruct_203B340
|
||||
// size: 0x8
|
||||
struct unkCreditsStruct_203B344
|
||||
{
|
||||
// size: 0x84
|
||||
u32 unk0;
|
||||
/* 0x0 */ u32 state; // state variable
|
||||
u32 unk4; // timer?
|
||||
};
|
||||
|
||||
// size: 0xC
|
||||
struct CreditsData
|
||||
{
|
||||
/* 0x0 */ s16 type;
|
||||
s16 x;
|
||||
s16 y;
|
||||
/* 0x8 */ u8 *text;
|
||||
};
|
||||
|
||||
extern struct unkCreditsStruct_203B340 *gUnknown_203B340;
|
||||
extern struct unkCreditsStruct_203B344 *gUnknown_203B344;
|
||||
|
||||
extern struct UnkTextStruct2 gUnknown_80E4A10;
|
||||
extern struct UnkTextStruct2 gUnknown_80E4A28;
|
||||
extern const u32 gUnknown_80E4A40[];
|
||||
extern struct CreditsData* gCreditsTable[27];
|
||||
extern u16 gUnknown_80E5990[];
|
||||
|
||||
extern void xxx_call_draw_string(s32, u32, const u8 *, u32, u32);
|
||||
|
||||
extern void sub_80015C0(u32, u32);
|
||||
|
||||
extern u16 gUnknown_80E5990[];
|
||||
extern struct unkStruct_203B344 *gUnknown_203B344;
|
||||
extern struct unkStruct_203B340 *gUnknown_203B340;
|
||||
extern s32 sub_8001658(u32, u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_8099A5C(u32, u32, u32);
|
||||
extern void sub_8099AFC(u32, u32, u32);
|
||||
extern u8 sub_8099B94();
|
||||
|
||||
// Unsure if param_2 is a s32/u32/ptr
|
||||
s32 DrawCredits(s32 creditsCategoryIndex, s32 param_2)
|
||||
{
|
||||
s32 i;
|
||||
s32 x;
|
||||
s32 y;
|
||||
struct CreditsData *cred;
|
||||
u8 *srcText;
|
||||
u8 *destText1;
|
||||
u8 *destText2;
|
||||
u8 curChar;
|
||||
u8 buffer[128];
|
||||
|
||||
gUnknown_203B340 = (struct unkCreditsStruct_203B340 *)MemoryAlloc(sizeof(struct unkCreditsStruct_203B340), 8);
|
||||
gUnknown_203B340->unk60 = 0;
|
||||
gUnknown_203B340->unk64 = param_2;
|
||||
gUnknown_203B340->creditsCategoryIndex = creditsCategoryIndex;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
gUnknown_203B340->unk0[i] = gUnknown_80E4A10;
|
||||
gUnknown_203B340->unk0[0] = gUnknown_80E4A28;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(&gUnknown_203B340->unk0[0], 1, 1);
|
||||
sub_8099690(2);
|
||||
sub_80073B8(0);
|
||||
|
||||
cred = creditsCategoryIndex[gCreditsTable]; // WTF
|
||||
y = 0;
|
||||
while (cred->text != NULL) {
|
||||
srcText = cred->text;
|
||||
if (cred->y >= 0)
|
||||
y = cred->y;
|
||||
else
|
||||
y -= cred->y;
|
||||
x = cred->x;
|
||||
|
||||
switch (cred->type) {
|
||||
case 1:
|
||||
destText1 = buffer;
|
||||
while ((curChar = *srcText) != 0) {
|
||||
*destText1 = curChar;
|
||||
srcText++;
|
||||
destText1++;
|
||||
}
|
||||
*destText1 = 0;
|
||||
srcText = buffer;
|
||||
break;
|
||||
case 2:
|
||||
destText2 = buffer;
|
||||
while ((curChar = *srcText) != 0) {
|
||||
*destText2 = curChar;
|
||||
srcText++;
|
||||
destText2++;
|
||||
}
|
||||
*destText2 = 0;
|
||||
srcText = buffer;
|
||||
break;
|
||||
}
|
||||
|
||||
xxx_call_draw_string(x, y, srcText, 0, 0);
|
||||
cred++;
|
||||
}
|
||||
|
||||
sub_80073E0(0);
|
||||
SelectCharmap(0);
|
||||
do {
|
||||
const u32 *a = gUnknown_80E4A40;
|
||||
int b = 9;
|
||||
unsigned long long c = b;
|
||||
sub_8099AFC(c, 0, a[0]);
|
||||
} while(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
s32 sub_8035574(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 const *p;
|
||||
#else
|
||||
register u32 const *p asm("r2");
|
||||
#endif
|
||||
|
||||
switch (gUnknown_203B340->unk60) {
|
||||
case 0:
|
||||
if (sub_8099B94() == 0) {
|
||||
gUnknown_203B340->unk60 = 1;
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099A5C(9, 30, p[0]); // Probably same/similar macro from the above func - Kermalis
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8099B94() == 0)
|
||||
gUnknown_203B340->unk60 = 2;
|
||||
break;
|
||||
case 2:
|
||||
if (gUnknown_203B340->unk64 < 1) {
|
||||
gUnknown_203B340->unk60 = 3;
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099AFC(9, 30, p[0]);
|
||||
}
|
||||
gUnknown_203B340->unk64--;
|
||||
break;
|
||||
case 3:
|
||||
if (sub_8099B94() == 0) {
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(NULL, 1, 1);
|
||||
gUnknown_203B340->unk60 = 4;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_8099690(0);
|
||||
p = gUnknown_80E4A40;
|
||||
sub_8099A5C(1, 0, p[0]);
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Frees gUnknown_203B340
|
||||
void sub_803565C(void)
|
||||
{
|
||||
if(gUnknown_203B340 != NULL)
|
||||
{
|
||||
if (gUnknown_203B340 != NULL) {
|
||||
MemoryFree(gUnknown_203B340);
|
||||
gUnknown_203B340 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
u32 sub_8035678(void)
|
||||
{
|
||||
gUnknown_203B344 = MemoryAlloc(sizeof(struct unkStruct_203B344), 8);
|
||||
gUnknown_203B344 = MemoryAlloc(sizeof(struct unkCreditsStruct_203B344), 8);
|
||||
gUnknown_203B344->state = 0;
|
||||
gUnknown_203B344->unk4 = 0;
|
||||
sub_80015C0(0, 0x39);
|
||||
|
|
@ -48,7 +193,7 @@ u32 sub_80356A0(void)
|
|||
held_input = gRealInputs.held;
|
||||
uVar1 = gUnknown_80E5990[gUnknown_203B344->unk4];
|
||||
|
||||
switch(gUnknown_203B344->state) {
|
||||
switch (gUnknown_203B344->state) {
|
||||
case 0:
|
||||
gUnknown_203B344->state = 3;
|
||||
break;
|
||||
|
|
@ -86,20 +231,19 @@ u32 sub_80356A0(void)
|
|||
return 3; // sub_809C478 clears the flash data when this is returned
|
||||
}
|
||||
|
||||
if (sub_8001658(0,0x39) != 0) {
|
||||
if (sub_8001658(0, 0x39) != 0) {
|
||||
gUnknown_203B344->state = 3;
|
||||
return 2;
|
||||
}
|
||||
else {
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Frees gUnknown_203B344
|
||||
void sub_8035758(void)
|
||||
{
|
||||
if(gUnknown_203B344 != NULL)
|
||||
{
|
||||
if (gUnknown_203B344 != NULL) {
|
||||
MemoryFree(gUnknown_203B344);
|
||||
gUnknown_203B344 = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -60,9 +60,6 @@ extern u32 sub_8031DCC();
|
|||
extern void sub_8031E10();
|
||||
extern void sub_8031E00();
|
||||
extern s32 sub_8001658(u32, u32);
|
||||
extern u8 sub_8099B94();
|
||||
extern void sub_8099A5C(u32, u32, u32*);
|
||||
extern void sub_8099AFC(u32, u32, u32*);
|
||||
extern void sub_8099690(u32);
|
||||
extern void sub_8031E10(void);
|
||||
extern void sub_803084C(void);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user