mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-23 07:28:10 -05:00
up to sub_800DE8C
This commit is contained in:
parent
0ee86ef843
commit
b2f08ba1d3
|
|
@ -5,482 +5,7 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_800DD0C
|
||||
sub_800DD0C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x8
|
||||
adds r5, r0, 0
|
||||
adds r6, r1, 0
|
||||
movs r0, 0x58
|
||||
adds r0, r5
|
||||
mov r8, r0
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0800DD2E
|
||||
movs r0, 0
|
||||
b _0800DD30
|
||||
_0800DD2E:
|
||||
lsrs r0, r1, 15
|
||||
_0800DD30:
|
||||
cmp r0, 0
|
||||
bne _0800DD64
|
||||
adds r0, r5, 0
|
||||
bl sub_800DCA8
|
||||
ldr r0, [r5, 0x34]
|
||||
cmp r0, 0x3
|
||||
bne _0800DD60
|
||||
movs r4, 0
|
||||
b _0800DD46
|
||||
_0800DD44:
|
||||
adds r4, 0x1
|
||||
_0800DD46:
|
||||
cmp r4, 0x1
|
||||
bgt _0800DD60
|
||||
adds r0, r4, 0
|
||||
bl sub_800F18C
|
||||
adds r2, r0, 0
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r5, 0x38]
|
||||
cmp r1, r0
|
||||
bne _0800DD44
|
||||
ldr r0, [r2, 0x4]
|
||||
subs r0, 0x1
|
||||
str r0, [r2, 0x4]
|
||||
_0800DD60:
|
||||
movs r0, 0
|
||||
b _0800DE28
|
||||
_0800DD64:
|
||||
mov r0, r8
|
||||
bl RunAxAnimationFrame
|
||||
movs r4, 0
|
||||
ldr r0, [r5, 0x8]
|
||||
movs r1, 0x7
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0800DD88
|
||||
ldr r0, [r5, 0x14]
|
||||
cmp r0, 0x5
|
||||
bgt _0800DD84
|
||||
cmp r0, 0x3
|
||||
blt _0800DD84
|
||||
subs r4, 0x3
|
||||
b _0800DD8A
|
||||
_0800DD84:
|
||||
adds r4, 0x3
|
||||
b _0800DD8A
|
||||
_0800DD88:
|
||||
movs r4, 0x3
|
||||
_0800DD8A:
|
||||
movs r2, 0
|
||||
ldr r1, [r5, 0x20]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _0800DD9E
|
||||
ldrh r0, [r5, 0x1E]
|
||||
lsls r0, 16
|
||||
ldrh r2, [r5, 0x1C]
|
||||
orrs r2, r0
|
||||
_0800DD9E:
|
||||
lsls r0, r2, 16
|
||||
asrs r1, r0, 16
|
||||
adds r7, r0, 0
|
||||
cmp r1, 0x63
|
||||
beq _0800DE26
|
||||
asrs r0, r2, 16
|
||||
adds r2, r0, 0
|
||||
cmp r2, 0x63
|
||||
beq _0800DE26
|
||||
ldr r3, [r5, 0x24]
|
||||
ldr r0, _0800DE34
|
||||
cmp r3, r0
|
||||
bne _0800DDCA
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r5, r1]
|
||||
movs r3, 0x2
|
||||
ldrsh r1, [r6, r3]
|
||||
subs r0, r1
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
adds r3, r0, r4
|
||||
_0800DDCA:
|
||||
movs r4, 0x18
|
||||
ldrsh r0, [r5, r4]
|
||||
movs r4, 0
|
||||
ldrsh r1, [r6, r4]
|
||||
subs r0, r1
|
||||
asrs r1, r7, 16
|
||||
adds r4, r0, r1
|
||||
movs r7, 0x1A
|
||||
ldrsh r0, [r5, r7]
|
||||
movs r7, 0x2
|
||||
ldrsh r1, [r6, r7]
|
||||
subs r0, r1
|
||||
adds r2, r0, r2
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xCC
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r5, 0x18]
|
||||
adds r0, r1
|
||||
strh r0, [r5, 0x18]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xCE
|
||||
ldrh r0, [r0]
|
||||
ldrh r7, [r5, 0x1A]
|
||||
adds r0, r7
|
||||
strh r0, [r5, 0x1A]
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x3F
|
||||
movs r0, 0xB7
|
||||
lsls r0, 1
|
||||
cmp r1, r0
|
||||
bhi _0800DE26
|
||||
movs r0, 0x40
|
||||
negs r0, r0
|
||||
cmp r2, r0
|
||||
ble _0800DE26
|
||||
cmp r2, 0xDF
|
||||
bgt _0800DE26
|
||||
ldr r0, [r5, 0x3C]
|
||||
str r0, [sp]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x28
|
||||
str r0, [sp, 0x4]
|
||||
mov r0, r8
|
||||
adds r1, r4, 0
|
||||
bl DoAxFrame_800558C
|
||||
_0800DE26:
|
||||
movs r0, 0x1
|
||||
_0800DE28:
|
||||
add sp, 0x8
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0800DE34: .4byte 0x0000ffff
|
||||
thumb_func_end sub_800DD0C
|
||||
|
||||
thumb_func_start sub_800DE38
|
||||
sub_800DE38:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r0, 0x58
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0800DE4E
|
||||
movs r0, 0
|
||||
b _0800DE50
|
||||
_0800DE4E:
|
||||
lsrs r0, r1, 15
|
||||
_0800DE50:
|
||||
cmp r0, 0
|
||||
bne _0800DE84
|
||||
adds r0, r5, 0
|
||||
bl sub_800DCA8
|
||||
ldr r0, [r5, 0x34]
|
||||
cmp r0, 0x3
|
||||
bne _0800DE80
|
||||
movs r4, 0
|
||||
b _0800DE66
|
||||
_0800DE64:
|
||||
adds r4, 0x1
|
||||
_0800DE66:
|
||||
cmp r4, 0x1
|
||||
bgt _0800DE80
|
||||
adds r0, r4, 0
|
||||
bl sub_800F18C
|
||||
adds r2, r0, 0
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r5, 0x38]
|
||||
cmp r1, r0
|
||||
bne _0800DE64
|
||||
ldr r0, [r2, 0x4]
|
||||
subs r0, 0x1
|
||||
str r0, [r2, 0x4]
|
||||
_0800DE80:
|
||||
movs r0, 0
|
||||
b _0800DE86
|
||||
_0800DE84:
|
||||
movs r0, 0x1
|
||||
_0800DE86:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800DE38
|
||||
|
||||
thumb_func_start sub_800DE8C
|
||||
sub_800DE8C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x14
|
||||
adds r6, r0, 0
|
||||
movs r0, 0x94
|
||||
adds r0, r6
|
||||
mov r8, r0
|
||||
ldr r4, [r0, 0x18]
|
||||
cmp r4, 0
|
||||
beq _0800DEA4
|
||||
b _0800E09C
|
||||
_0800DEA4:
|
||||
ldr r1, [r0, 0x14]
|
||||
movs r7, 0x1
|
||||
str r7, [sp]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xAC
|
||||
str r0, [sp, 0x4]
|
||||
add r2, sp, 0xC
|
||||
str r2, [sp, 0x8]
|
||||
mov r0, r8
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8009A7C
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0
|
||||
bne _0800DEC8
|
||||
b _0800E030
|
||||
_0800DEC8:
|
||||
add r0, sp, 0xC
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0
|
||||
beq _0800DEE8
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xB4
|
||||
strb r7, [r0]
|
||||
ldr r0, _0800DF0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, _0800DF10
|
||||
adds r1, r0, r2
|
||||
str r4, [r1]
|
||||
ldr r1, _0800DF14
|
||||
adds r0, r1
|
||||
str r4, [r0]
|
||||
_0800DEE8:
|
||||
add r0, sp, 0xC
|
||||
ldrh r0, [r0, 0x2]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0
|
||||
beq _0800DF6C
|
||||
cmp r0, 0x63
|
||||
bne _0800DF1C
|
||||
ldr r0, _0800DF0C
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0800DF10
|
||||
adds r2, r0, r1
|
||||
ldr r1, _0800DF18
|
||||
str r1, [r2]
|
||||
ldr r2, _0800DF14
|
||||
adds r0, r2
|
||||
str r4, [r0]
|
||||
b _0800DF6C
|
||||
.align 2, 0
|
||||
_0800DF0C: .4byte gUnknown_203B0CC
|
||||
_0800DF10: .4byte 0x00001a08
|
||||
_0800DF14: .4byte 0x00001a0c
|
||||
_0800DF18: .4byte 0x00000c1c
|
||||
_0800DF1C:
|
||||
cmp r0, 0
|
||||
ble _0800DF50
|
||||
ldr r0, _0800DF40
|
||||
ldr r4, [r0]
|
||||
ldr r0, _0800DF44
|
||||
adds r5, r4, r0
|
||||
ldr r1, _0800DF48
|
||||
adds r4, r1
|
||||
add r0, sp, 0xC
|
||||
movs r2, 0x2
|
||||
ldrsh r1, [r0, r2]
|
||||
ldr r0, _0800DF4C
|
||||
bl __divsi3
|
||||
str r0, [r4]
|
||||
str r0, [r5]
|
||||
b _0800DF6C
|
||||
.align 2, 0
|
||||
_0800DF40: .4byte gUnknown_203B0CC
|
||||
_0800DF44: .4byte 0x00001a08
|
||||
_0800DF48: .4byte 0x00001a0c
|
||||
_0800DF4C: .4byte 0x00000c1c
|
||||
_0800DF50:
|
||||
ldr r0, _0800DFA4
|
||||
ldr r4, [r0]
|
||||
ldr r0, _0800DFA8
|
||||
adds r1, r4, r0
|
||||
ldr r0, _0800DFAC
|
||||
str r0, [r1]
|
||||
ldr r1, _0800DFB0
|
||||
adds r4, r1
|
||||
add r1, sp, 0xC
|
||||
movs r2, 0x2
|
||||
ldrsh r1, [r1, r2]
|
||||
bl __divsi3
|
||||
str r0, [r4]
|
||||
_0800DF6C:
|
||||
mov r0, r8
|
||||
adds r0, 0x20
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0800DF78
|
||||
b _0800E094
|
||||
_0800DF78:
|
||||
ldr r0, _0800DFA4
|
||||
ldr r1, [r0]
|
||||
ldr r2, _0800DFB4
|
||||
adds r0, r1, r2
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0800DFB8
|
||||
cmp r0, 0x1
|
||||
bne _0800DFEA
|
||||
adds r0, r6, 0
|
||||
adds r0, 0xB8
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x4]
|
||||
ldr r1, [r0, 0x10]
|
||||
movs r0, 0xE0
|
||||
lsls r0, 2
|
||||
adds r1, r0
|
||||
movs r0, 0xE0
|
||||
movs r2, 0x10
|
||||
bl sub_809971C
|
||||
b _0800DFEA
|
||||
.align 2, 0
|
||||
_0800DFA4: .4byte gUnknown_203B0CC
|
||||
_0800DFA8: .4byte 0x00001a08
|
||||
_0800DFAC: .4byte 0x00000c1c
|
||||
_0800DFB0: .4byte 0x00001a0c
|
||||
_0800DFB4: .4byte 0x00001a04
|
||||
_0800DFB8:
|
||||
ldr r2, _0800E010
|
||||
adds r0, r1, r2
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x64
|
||||
bl __divsi3
|
||||
adds r7, r0, 0
|
||||
movs r4, 0
|
||||
adds r6, 0xB8
|
||||
movs r5, 0xE0
|
||||
lsls r5, 2
|
||||
_0800DFCE:
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xE0
|
||||
ldr r1, [r6]
|
||||
ldr r1, [r1, 0x4]
|
||||
ldr r1, [r1, 0x10]
|
||||
adds r1, r5
|
||||
adds r2, r7, 0
|
||||
movs r3, 0
|
||||
bl SetBGPaletteBufferColorRGB
|
||||
adds r5, 0x4
|
||||
adds r4, 0x1
|
||||
cmp r4, 0xF
|
||||
ble _0800DFCE
|
||||
_0800DFEA:
|
||||
ldr r1, _0800E014
|
||||
ldr r2, _0800E018
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
ldr r0, _0800E01C
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0800E010
|
||||
adds r2, r0, r1
|
||||
adds r1, 0x4
|
||||
adds r0, r1
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r0]
|
||||
adds r1, r0
|
||||
str r1, [r2]
|
||||
cmp r1, 0
|
||||
bge _0800E020
|
||||
movs r0, 0
|
||||
str r0, [r2]
|
||||
b _0800E094
|
||||
.align 2, 0
|
||||
_0800E010: .4byte 0x00001a08
|
||||
_0800E014: .4byte gUnknown_2026E4E
|
||||
_0800E018: .4byte 0x00000a0a
|
||||
_0800E01C: .4byte gUnknown_203B0CC
|
||||
_0800E020:
|
||||
ldr r0, _0800E02C
|
||||
cmp r1, r0
|
||||
ble _0800E094
|
||||
str r0, [r2]
|
||||
b _0800E094
|
||||
.align 2, 0
|
||||
_0800E02C: .4byte 0x00000c1c
|
||||
_0800E030:
|
||||
bl sub_8009BE4
|
||||
adds r0, r6, 0
|
||||
bl sub_800DCA8
|
||||
bl sub_8000728
|
||||
cmp r0, 0x1
|
||||
bne _0800E058
|
||||
bl LoadDungeonMapPalette
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
movs r0, 0x80
|
||||
lsls r0, 8
|
||||
movs r1, 0
|
||||
bl sub_800CD64
|
||||
_0800E058:
|
||||
ldr r4, _0800E084
|
||||
ldr r0, [r4]
|
||||
ldr r2, _0800E088
|
||||
adds r0, r2
|
||||
ldr r0, [r0]
|
||||
bl sub_800CDA8
|
||||
ldr r1, _0800E08C
|
||||
ldr r0, [r4]
|
||||
ldr r2, _0800E090
|
||||
adds r0, r2
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r1]
|
||||
movs r0, 0x1
|
||||
bl sub_800F18C
|
||||
str r5, [r0, 0x4]
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
str r1, [r0]
|
||||
movs r0, 0
|
||||
b _0800E0A6
|
||||
.align 2, 0
|
||||
_0800E084: .4byte gUnknown_203B0CC
|
||||
_0800E088: .4byte 0x00001a10
|
||||
_0800E08C: .4byte gUnknown_2026E4E
|
||||
_0800E090: .4byte 0x00001a14
|
||||
_0800E094:
|
||||
mov r1, r8
|
||||
ldr r0, [r1, 0x14]
|
||||
adds r0, 0x1
|
||||
str r0, [r1, 0x14]
|
||||
_0800E09C:
|
||||
mov r2, r8
|
||||
ldr r0, [r2, 0x18]
|
||||
subs r0, 0x1
|
||||
str r0, [r2, 0x18]
|
||||
movs r0, 0x1
|
||||
_0800E0A6:
|
||||
add sp, 0x14
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800DE8C
|
||||
|
||||
thumb_func_start sub_800E0B4
|
||||
sub_800E0B4:
|
||||
|
|
|
|||
|
|
@ -6,6 +6,17 @@
|
|||
#include "structs/str_position.h"
|
||||
#include "structs/str_file_system.h"
|
||||
|
||||
struct unkStruct_203B0CC_x94
|
||||
{
|
||||
s32 unk0;
|
||||
u16 **unk4;
|
||||
u8 fill8[0x14-0x8];
|
||||
s32 unk14;
|
||||
s32 unk18;
|
||||
s32 fill1C;
|
||||
u8 unk20;
|
||||
};
|
||||
|
||||
struct unkStruct_203B0CC_sub
|
||||
{
|
||||
// size: 0xD0
|
||||
|
|
@ -28,23 +39,25 @@ struct unkStruct_203B0CC_sub
|
|||
s32 unk50;
|
||||
u8 unk54;
|
||||
u8 fill55[0x58 - 0x55];
|
||||
axObject unk58;
|
||||
u8 fillA4[0xB8 - 0xA4];
|
||||
axdata unk58;
|
||||
struct unkStruct_203B0CC_x94 unk94;
|
||||
OpenedFile *unkB8;
|
||||
u8 fillBC[0xCC - 0xBC];
|
||||
s16 unkCC[2]; // NOTE: might be DungeonPos
|
||||
s16 unkCC[2];
|
||||
};
|
||||
|
||||
#define UNK_203B0CC_ARR_COUNT 0x20
|
||||
|
||||
struct unkStruct_203B0CC
|
||||
{
|
||||
// size: 0x1A18
|
||||
struct unkStruct_203B0CC_sub unk0[0x20];
|
||||
u32 unk1A00;
|
||||
struct unkStruct_203B0CC_sub unk0[UNK_203B0CC_ARR_COUNT];
|
||||
s32 unk1A00;
|
||||
/* 0x1A04 */ u32 fileSelection;
|
||||
u32 unk1A08;
|
||||
u32 unk1A0C;
|
||||
u32 unk1A10;
|
||||
u8 fill1A14[0x1A18 - 0x1A14];
|
||||
s32 unk1A08;
|
||||
s32 unk1A0C;
|
||||
s32 unk1A10;
|
||||
u16 unk1A14;
|
||||
};
|
||||
|
||||
bool8 sub_800E9A8(s32 a0);
|
||||
|
|
|
|||
|
|
@ -57,4 +57,17 @@ void sub_800569C(DungeonPos *, axdata *, u8);
|
|||
void sub_8005700(DungeonPos *dstPos, axdata *axData);
|
||||
void sub_8005770(s32, const RGB *color, s32 brightness, const RGB *ramp);
|
||||
|
||||
static inline bool8 AxFlag8000(axdata *ax)
|
||||
{
|
||||
return (ax->flags & 0x8000) != 0;
|
||||
}
|
||||
|
||||
static inline bool8 AxFlag8000_Not2000(axdata *ax)
|
||||
{
|
||||
if (ax->flags & 0x2000)
|
||||
return FALSE;
|
||||
else
|
||||
return (ax->flags & 0x8000) != 0;
|
||||
}
|
||||
|
||||
#endif // GUARD_SPRITE_H
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
#include "main_loops.h"
|
||||
#include "memory.h"
|
||||
#include "sprite.h"
|
||||
#include "bg_palette_buffer.h"
|
||||
#include "cpu.h"
|
||||
|
||||
EWRAM_INIT struct unkStruct_203B0CC *gUnknown_203B0CC = NULL;
|
||||
|
||||
|
|
@ -39,128 +41,113 @@ extern void sub_800F094();
|
|||
|
||||
void sub_800DAC0(u32 fileSelection)
|
||||
{
|
||||
s32 index;
|
||||
OpenedFile *filePtr;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
s32 i;
|
||||
OpenedFile *filePtr;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
if (gUnknown_203B0CC != NULL) {
|
||||
sub_800DB7C();
|
||||
}
|
||||
gUnknown_203B0CC = MemoryAlloc(sizeof(struct unkStruct_203B0CC), 0xb);
|
||||
MemoryClear8(gUnknown_203B0CC, sizeof(struct unkStruct_203B0CC));
|
||||
gUnknown_203B0CC->fileSelection = fileSelection;
|
||||
for(index = 0, preload = &gUnknown_203B0CC->unk0[index]; index < 0x20; index++, preload++)
|
||||
{
|
||||
preload->unk4 = -1;
|
||||
}
|
||||
sub_800ED38(fileSelection);
|
||||
sub_800F034();
|
||||
if (gUnknown_203B0CC != NULL) {
|
||||
sub_800DB7C();
|
||||
}
|
||||
gUnknown_203B0CC = MemoryAlloc(sizeof(struct unkStruct_203B0CC), 0xb);
|
||||
MemoryClear8(gUnknown_203B0CC, sizeof(struct unkStruct_203B0CC));
|
||||
gUnknown_203B0CC->fileSelection = fileSelection;
|
||||
for (i = 0, ptr = &gUnknown_203B0CC->unk0[i]; i < 0x20; i++, ptr++) {
|
||||
ptr->unk4 = -1;
|
||||
}
|
||||
sub_800ED38(fileSelection);
|
||||
sub_800F034();
|
||||
|
||||
switch(gUnknown_203B0CC->fileSelection)
|
||||
{
|
||||
case 1:
|
||||
filePtr = Call_OpenFileAndGetFileDataPtr(gefob001_string, &gEffectFileArchive);
|
||||
if (filePtr != NULL) {
|
||||
sub_8005610(filePtr,0x248,0x1f,0);
|
||||
CloseFile(filePtr);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
filePtr = Call_OpenFileAndGetFileDataPtr(gefob000_string, &gEffectFileArchive);
|
||||
if (filePtr != NULL) {
|
||||
sub_8005610(filePtr,0x248,0x1f,0);
|
||||
CloseFile(filePtr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
switch (gUnknown_203B0CC->fileSelection) {
|
||||
case 1:
|
||||
filePtr = Call_OpenFileAndGetFileDataPtr(gefob001_string, &gEffectFileArchive);
|
||||
if (filePtr != NULL) {
|
||||
sub_8005610(filePtr,0x248,0x1f,0);
|
||||
CloseFile(filePtr);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
filePtr = Call_OpenFileAndGetFileDataPtr(gefob000_string, &gEffectFileArchive);
|
||||
if (filePtr != NULL) {
|
||||
sub_8005610(filePtr,0x248,0x1f,0);
|
||||
CloseFile(filePtr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800DB7C(void)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
s32 i;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
|
||||
for(index = 0, preload = &gUnknown_203B0CC->unk0[index]; index < 0x20; index++, preload++)
|
||||
{
|
||||
if(preload->unk4 != -1)
|
||||
sub_800DC14(preload->unk4);
|
||||
}
|
||||
for (i = 0, ptr = &gUnknown_203B0CC->unk0[i]; i < UNK_203B0CC_ARR_COUNT; i++, ptr++) {
|
||||
if (ptr->unk4 != -1)
|
||||
sub_800DC14(ptr->unk4);
|
||||
}
|
||||
|
||||
|
||||
sub_800F078();
|
||||
sub_800ED64();
|
||||
if(gUnknown_203B0CC != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B0CC);
|
||||
gUnknown_203B0CC = NULL;
|
||||
}
|
||||
sub_800F078();
|
||||
sub_800ED64();
|
||||
TRY_FREE_AND_SET_NULL(gUnknown_203B0CC);
|
||||
}
|
||||
|
||||
void sub_800DBBC(void)
|
||||
{
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
struct unkStruct_203B0CC_sub *preload2;
|
||||
s32 i1, i2;
|
||||
struct unkStruct_203B0CC_sub *ptr1, *ptr2;
|
||||
|
||||
for(index1 = 0, preload = &gUnknown_203B0CC->unk0[index1]; index1 < 0x20; index1++, preload++)
|
||||
{
|
||||
if(preload->unk4 != -1)
|
||||
sub_800DC14(preload->unk4);
|
||||
}
|
||||
for (i1 = 0, ptr1 = &gUnknown_203B0CC->unk0[i1]; i1 < UNK_203B0CC_ARR_COUNT; i1++, ptr1++) {
|
||||
if (ptr1->unk4 != -1) {
|
||||
sub_800DC14(ptr1->unk4);
|
||||
}
|
||||
}
|
||||
|
||||
for (i2 = 0, ptr2 = &gUnknown_203B0CC->unk0[i2]; i2 < UNK_203B0CC_ARR_COUNT; i2++, ptr2++) {
|
||||
ptr2->unk4 = -1;
|
||||
}
|
||||
|
||||
for(index2 = 0, preload2 = &gUnknown_203B0CC->unk0[index2]; index2 < 0x20; index2++, preload2++)
|
||||
{
|
||||
preload2->unk4 = -1;
|
||||
}
|
||||
sub_800ED80();
|
||||
sub_800F094();
|
||||
sub_800ED80();
|
||||
sub_800F094();
|
||||
}
|
||||
|
||||
bool8 sub_800DCC0(void)
|
||||
{
|
||||
return gUnknown_203B0CC != NULL;
|
||||
return gUnknown_203B0CC != NULL;
|
||||
}
|
||||
|
||||
void sub_800DC14(s32 param_1)
|
||||
{
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
struct unkStruct_800F18C *piVar3;
|
||||
struct unkStruct_800F18C *puVar4;
|
||||
struct unkStruct_203B0CC_sub *preload;
|
||||
|
||||
index1 = sub_800E2C0(param_1);
|
||||
if (index1 != -1) {
|
||||
preload = &gUnknown_203B0CC->unk0[index1];
|
||||
if (preload->unk34 == 4) {
|
||||
sub_8009BE4();
|
||||
if (sub_8000728() == 1) {
|
||||
LoadDungeonMapPalette();
|
||||
sub_803EAF0(0, NULL);
|
||||
sub_800CD64(0x8000,0);
|
||||
}
|
||||
}
|
||||
if (preload->unk34 == 3) {
|
||||
for (index2 = 0; index2 < 2; index2 = index2 + 1) {
|
||||
piVar3 = sub_800F18C(index2);
|
||||
if (piVar3->effectID == preload->effectID) {
|
||||
piVar3->counter--;
|
||||
break;
|
||||
s32 index1 = sub_800E2C0(param_1);
|
||||
if (index1 != -1) {
|
||||
struct unkStruct_203B0CC_sub *ptr = &gUnknown_203B0CC->unk0[index1];
|
||||
if (ptr->unk34 == 4) {
|
||||
sub_8009BE4();
|
||||
if (sub_8000728() == 1) {
|
||||
LoadDungeonMapPalette();
|
||||
sub_803EAF0(0, NULL);
|
||||
sub_800CD64(0x8000,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ptr->unk34 == 3) {
|
||||
s32 i;
|
||||
for (i = 0; i < 2; i = i + 1) {
|
||||
struct unkStruct_800F18C *piVar3 = sub_800F18C(i);
|
||||
if (piVar3->effectID == ptr->effectID) {
|
||||
piVar3->counter--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
struct unkStruct_800F18C *puVar4 = sub_800F18C(1);
|
||||
puVar4->counter = 0;
|
||||
puVar4->effectID = -1;
|
||||
}
|
||||
sub_800DCA8(ptr);
|
||||
}
|
||||
else {
|
||||
puVar4 = sub_800F18C(1);
|
||||
puVar4->counter = 0;
|
||||
puVar4->effectID = -1;
|
||||
}
|
||||
sub_800DCA8(preload);
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_800DC9C(void) {
|
||||
u32 sub_800DC9C(void)
|
||||
{
|
||||
return sub_800E900();
|
||||
}
|
||||
|
||||
|
|
@ -168,8 +155,7 @@ void sub_800DCA8(struct unkStruct_203B0CC_sub *param_1)
|
|||
{
|
||||
param_1->unk4 = -1;
|
||||
param_1->unk54 = 0;
|
||||
if(param_1->unkB8 != NULL)
|
||||
{
|
||||
if (param_1->unkB8 != NULL) {
|
||||
sub_800F204(param_1->unkB8);
|
||||
param_1->unkB8 = NULL;
|
||||
}
|
||||
|
|
@ -177,14 +163,351 @@ void sub_800DCA8(struct unkStruct_203B0CC_sub *param_1)
|
|||
|
||||
void sub_800DCD0(struct unkStruct_203B0CC_sub *param_1)
|
||||
{
|
||||
if ((param_1->unk4C != -1) && (param_1->unk50 == 0)) {
|
||||
if (sub_8000728() != 2) {
|
||||
PlaySound(param_1->unk4C);
|
||||
if (param_1->unk4C != -1 && param_1->unk50 == 0) {
|
||||
if (sub_8000728() != 2) {
|
||||
PlaySound(param_1->unk4C);
|
||||
}
|
||||
param_1->unk4C = -1;
|
||||
param_1->unk50 = -1;
|
||||
}
|
||||
if (param_1->unk50 > 0) {
|
||||
param_1->unk50--;
|
||||
}
|
||||
param_1->unk4C = -1;
|
||||
param_1->unk50 = -1;
|
||||
}
|
||||
if (param_1->unk50 > 0) {
|
||||
param_1->unk50--;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posArg)
|
||||
{
|
||||
struct axObject *axObj = ¶m_1->unk58;
|
||||
|
||||
if (!AxFlag8000_Not2000(&axObj->axdata)) {
|
||||
sub_800DCA8(param_1);
|
||||
if (param_1->unk34 == 3) {
|
||||
s32 i;
|
||||
for (i = 0; i < 2; i++) {
|
||||
struct unkStruct_800F18C *puVar4 = sub_800F18C(i);
|
||||
if (puVar4->effectID == param_1->effectID) {
|
||||
puVar4->counter--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
DungeonPos pos;
|
||||
s32 unkYAdd;
|
||||
|
||||
RunAxAnimationFrame(&axObj->axdata);
|
||||
unkYAdd = 0;
|
||||
if ((param_1->unk8 % 8) == 0) {
|
||||
switch (param_1->unk14) {
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
unkYAdd -= 3;
|
||||
break;
|
||||
default:
|
||||
unkYAdd += 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
unkYAdd += 3;
|
||||
}
|
||||
pos = (DungeonPos) {0, 0};
|
||||
if (param_1->unk20 != -1) {
|
||||
pos.x = param_1->unk1c.x;
|
||||
pos.y = param_1->unk1c.y;
|
||||
}
|
||||
|
||||
if (pos.x != 99 && pos.y != 99) {
|
||||
s32 x, y;
|
||||
s32 unkY = param_1->unk24;
|
||||
if (unkY == 0xffff) {
|
||||
unkY = (param_1->unk18.y - posArg->y) / 2 + unkYAdd;
|
||||
}
|
||||
x = param_1->unk18.x - posArg->x + pos.x;
|
||||
y = param_1->unk18.y - posArg->y + pos.y;
|
||||
param_1->unk18.x += param_1->unkCC[0];
|
||||
param_1->unk18.y += param_1->unkCC[1];
|
||||
if (x > -64 && x < 304 && y > -64 && y < 224) {
|
||||
DoAxFrame_800558C(&axObj->axdata,x,y,unkY,param_1->paletteNum,¶m_1->spriteMasks);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED bool8 sub_800DD0C(struct unkStruct_203B0CC_sub *param_1, DungeonPos *posArg)
|
||||
{
|
||||
asm_unified(" push {r4-r7,lr}\n"
|
||||
" mov r7, r8\n"
|
||||
" push {r7}\n"
|
||||
" sub sp, 0x8\n"
|
||||
" adds r5, r0, 0\n"
|
||||
" adds r6, r1, 0\n"
|
||||
" movs r0, 0x58\n"
|
||||
" adds r0, r5\n"
|
||||
" mov r8, r0\n"
|
||||
" ldrh r1, [r0]\n"
|
||||
" movs r0, 0x80\n"
|
||||
" lsls r0, 6\n"
|
||||
" ands r0, r1\n"
|
||||
" cmp r0, 0\n"
|
||||
" beq _0800DD2E\n"
|
||||
" movs r0, 0\n"
|
||||
" b _0800DD30\n"
|
||||
"_0800DD2E:\n"
|
||||
" lsrs r0, r1, 15\n"
|
||||
"_0800DD30:\n"
|
||||
" cmp r0, 0\n"
|
||||
" bne _0800DD64\n"
|
||||
" adds r0, r5, 0\n"
|
||||
" bl sub_800DCA8\n"
|
||||
" ldr r0, [r5, 0x34]\n"
|
||||
" cmp r0, 0x3\n"
|
||||
" bne _0800DD60\n"
|
||||
" movs r4, 0\n"
|
||||
" b _0800DD46\n"
|
||||
"_0800DD44:\n"
|
||||
" adds r4, 0x1\n"
|
||||
"_0800DD46:\n"
|
||||
" cmp r4, 0x1\n"
|
||||
" bgt _0800DD60\n"
|
||||
" adds r0, r4, 0\n"
|
||||
" bl sub_800F18C\n"
|
||||
" adds r2, r0, 0\n"
|
||||
" ldr r1, [r2]\n"
|
||||
" ldr r0, [r5, 0x38]\n"
|
||||
" cmp r1, r0\n"
|
||||
" bne _0800DD44\n"
|
||||
" ldr r0, [r2, 0x4]\n"
|
||||
" subs r0, 0x1\n"
|
||||
" str r0, [r2, 0x4]\n"
|
||||
"_0800DD60:\n"
|
||||
" movs r0, 0\n"
|
||||
" b _0800DE28\n"
|
||||
"_0800DD64:\n"
|
||||
" mov r0, r8\n"
|
||||
" bl RunAxAnimationFrame\n"
|
||||
" movs r4, 0\n"
|
||||
" ldr r0, [r5, 0x8]\n"
|
||||
" movs r1, 0x7\n"
|
||||
" ands r0, r1\n"
|
||||
" cmp r0, 0\n"
|
||||
" bne _0800DD88\n"
|
||||
" ldr r0, [r5, 0x14]\n"
|
||||
" cmp r0, 0x5\n"
|
||||
" bgt _0800DD84\n"
|
||||
" cmp r0, 0x3\n"
|
||||
" blt _0800DD84\n"
|
||||
" subs r4, 0x3\n"
|
||||
" b _0800DD8A\n"
|
||||
"_0800DD84:\n"
|
||||
" adds r4, 0x3\n"
|
||||
" b _0800DD8A\n"
|
||||
"_0800DD88:\n"
|
||||
" movs r4, 0x3\n"
|
||||
"_0800DD8A:\n"
|
||||
" movs r2, 0\n"
|
||||
" ldr r1, [r5, 0x20]\n"
|
||||
" movs r0, 0x1\n"
|
||||
" negs r0, r0\n"
|
||||
" cmp r1, r0\n"
|
||||
" beq _0800DD9E\n"
|
||||
" ldrh r0, [r5, 0x1E]\n"
|
||||
" lsls r0, 16\n"
|
||||
" ldrh r2, [r5, 0x1C]\n"
|
||||
" orrs r2, r0\n"
|
||||
"_0800DD9E:\n"
|
||||
" lsls r0, r2, 16\n"
|
||||
" asrs r1, r0, 16\n"
|
||||
" adds r7, r0, 0\n"
|
||||
" cmp r1, 0x63\n"
|
||||
" beq _0800DE26\n"
|
||||
" asrs r0, r2, 16\n"
|
||||
" adds r2, r0, 0\n"
|
||||
" cmp r2, 0x63\n"
|
||||
" beq _0800DE26\n"
|
||||
" ldr r3, [r5, 0x24]\n"
|
||||
" ldr r0, _0800DE34\n"
|
||||
" cmp r3, r0\n"
|
||||
" bne _0800DDCA\n"
|
||||
" movs r1, 0x1A\n"
|
||||
" ldrsh r0, [r5, r1]\n"
|
||||
" movs r3, 0x2\n"
|
||||
" ldrsh r1, [r6, r3]\n"
|
||||
" subs r0, r1\n"
|
||||
" lsrs r1, r0, 31\n"
|
||||
" adds r0, r1\n"
|
||||
" asrs r0, 1\n"
|
||||
" adds r3, r0, r4\n"
|
||||
"_0800DDCA:\n"
|
||||
" movs r4, 0x18\n"
|
||||
" ldrsh r0, [r5, r4]\n"
|
||||
" movs r4, 0\n"
|
||||
" ldrsh r1, [r6, r4]\n"
|
||||
" subs r0, r1\n"
|
||||
" asrs r1, r7, 16\n"
|
||||
" adds r4, r0, r1\n"
|
||||
" movs r7, 0x1A\n"
|
||||
" ldrsh r0, [r5, r7]\n"
|
||||
" movs r7, 0x2\n"
|
||||
" ldrsh r1, [r6, r7]\n"
|
||||
" subs r0, r1\n"
|
||||
" adds r2, r0, r2\n"
|
||||
" adds r0, r5, 0\n"
|
||||
" adds r0, 0xCC\n"
|
||||
" ldrh r0, [r0]\n"
|
||||
" ldrh r1, [r5, 0x18]\n"
|
||||
" adds r0, r1\n"
|
||||
" strh r0, [r5, 0x18]\n"
|
||||
" adds r0, r5, 0\n"
|
||||
" adds r0, 0xCE\n"
|
||||
" ldrh r0, [r0]\n"
|
||||
" ldrh r7, [r5, 0x1A]\n"
|
||||
" adds r0, r7\n"
|
||||
" strh r0, [r5, 0x1A]\n"
|
||||
" adds r1, r4, 0\n"
|
||||
" adds r1, 0x3F\n"
|
||||
" movs r0, 0xB7\n"
|
||||
" lsls r0, 1\n"
|
||||
" cmp r1, r0\n"
|
||||
" bhi _0800DE26\n"
|
||||
" movs r0, 0x40\n"
|
||||
" negs r0, r0\n"
|
||||
" cmp r2, r0\n"
|
||||
" ble _0800DE26\n"
|
||||
" cmp r2, 0xDF\n"
|
||||
" bgt _0800DE26\n"
|
||||
" ldr r0, [r5, 0x3C]\n"
|
||||
" str r0, [sp]\n"
|
||||
" adds r0, r5, 0\n"
|
||||
" adds r0, 0x28\n"
|
||||
" str r0, [sp, 0x4]\n"
|
||||
" mov r0, r8\n"
|
||||
" adds r1, r4, 0\n"
|
||||
" bl DoAxFrame_800558C\n"
|
||||
"_0800DE26:\n"
|
||||
" movs r0, 0x1\n"
|
||||
"_0800DE28:\n"
|
||||
" add sp, 0x8\n"
|
||||
" pop {r3}\n"
|
||||
" mov r8, r3\n"
|
||||
" pop {r4-r7}\n"
|
||||
" pop {r1}\n"
|
||||
" bx r1\n"
|
||||
" .align 2, 0\n"
|
||||
"_0800DE34: .4byte 0x0000ffff");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
bool8 sub_800DE38(struct unkStruct_203B0CC_sub *a1)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
if (!AxFlag8000_Not2000(&a1->unk58)) {
|
||||
sub_800DCA8(a1);
|
||||
if (a1->unk34 == 3) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
struct unkStruct_800F18C *strPtr = sub_800F18C(i);
|
||||
if (strPtr->effectID == a1->effectID) {
|
||||
strPtr->counter--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
extern s16 gUnknown_2026E4E;
|
||||
extern bool8 sub_8009A7C(void *a0, s32 a1, s32 a2, s32 a3, bool8 a4, s32 *a5, s16 *a6);
|
||||
extern void sub_809971C(u16 a0, const RGB *a1, int a2);
|
||||
|
||||
static inline const EfoFileData *GetFileEfo(struct unkStruct_203B0CC_sub *a0)
|
||||
{
|
||||
return a0->unkB8->data;
|
||||
}
|
||||
|
||||
bool8 sub_800DE8C(struct unkStruct_203B0CC_sub *a0, DungeonPos *unused)
|
||||
{
|
||||
s16 sp[4];
|
||||
struct unkStruct_203B0CC_x94 *r8 = &a0->unk94;
|
||||
|
||||
if (r8->unk18 == 0) {
|
||||
if (sub_8009A7C(r8, r8->unk14, 0, 0, TRUE, &r8->unk18, sp)) {
|
||||
if (sp[0] != 0) {
|
||||
r8->unk20 = 1;
|
||||
gUnknown_203B0CC->unk1A08 = 0;
|
||||
gUnknown_203B0CC->unk1A0C = 0;
|
||||
}
|
||||
if (sp[1] != 0) {
|
||||
if (sp[1] == 99) {
|
||||
gUnknown_203B0CC->unk1A08 = 3100;
|
||||
gUnknown_203B0CC->unk1A0C = 0;
|
||||
}
|
||||
else if (sp[1] > 0) {
|
||||
gUnknown_203B0CC->unk1A08 = gUnknown_203B0CC->unk1A0C = 3100 / sp[1];
|
||||
}
|
||||
else {
|
||||
gUnknown_203B0CC->unk1A08 = 3100;
|
||||
gUnknown_203B0CC->unk1A0C = 3100 / sp[1];
|
||||
}
|
||||
}
|
||||
|
||||
if (r8->unk20 != 0) {
|
||||
switch (gUnknown_203B0CC->fileSelection) {
|
||||
case 1:
|
||||
sub_809971C(224, &GetFileEfo(a0)->unk10->pal[224],16);
|
||||
break;
|
||||
case 0: {
|
||||
s32 i;
|
||||
s32 brightness = gUnknown_203B0CC->unk1A08 / 100;
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
SetBGPaletteBufferColorRGB(i + 224, &GetFileEfo(a0)->unk10->pal[i + 224], brightness, NULL);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gUnknown_2026E4E = 2570;
|
||||
gUnknown_203B0CC->unk1A08 += gUnknown_203B0CC->unk1A0C;
|
||||
if (gUnknown_203B0CC->unk1A08 < 0) {
|
||||
gUnknown_203B0CC->unk1A08 = 0;
|
||||
}
|
||||
else if (gUnknown_203B0CC->unk1A08 > 3100) {
|
||||
gUnknown_203B0CC->unk1A08 = 3100;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
struct unkStruct_800F18C *strPtr;
|
||||
|
||||
sub_8009BE4();
|
||||
sub_800DCA8(a0);
|
||||
if (sub_8000728() == 1) {
|
||||
LoadDungeonMapPalette();
|
||||
sub_803EAF0(0, 0);
|
||||
sub_800CD64(0x8000, FALSE);
|
||||
}
|
||||
sub_800CDA8(gUnknown_203B0CC->unk1A10);
|
||||
gUnknown_2026E4E = gUnknown_203B0CC->unk1A14;
|
||||
strPtr = sub_800F18C(1);
|
||||
strPtr->counter = 0;
|
||||
strPtr->effectID = -1;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
r8->unk14++;
|
||||
}
|
||||
|
||||
r8->unk18--;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
|||
|
|
@ -45,14 +45,6 @@ extern s32 gDungeonFramesCounter;
|
|||
|
||||
extern void sub_8042EC8(Entity *a0, s32 a1);
|
||||
|
||||
static inline u16 GetUnkFlag(Entity *entity)
|
||||
{
|
||||
if ((entity->axObj.axdata.flags & 0x2000))
|
||||
return 0;
|
||||
else
|
||||
return entity->axObj.axdata.flags >> 15;
|
||||
}
|
||||
|
||||
void sub_806C51C(Entity *entity)
|
||||
{
|
||||
s32 x, y, y2;
|
||||
|
|
@ -82,7 +74,7 @@ void sub_806C51C(Entity *entity)
|
|||
if (entity->axObj.unk43_animId2 == entity->axObj.unk42_animId1 && entity->axObj.unk45_orientation == entity->axObj.unk44_direction1 && entity->axObj.unk47 == 0) {
|
||||
bool8 r2 = FALSE;
|
||||
|
||||
if (!GetUnkFlag(entity))
|
||||
if (!AxFlag8000_Not2000(&entity->axObj.axdata))
|
||||
r2 = TRUE;
|
||||
|
||||
if (r2) {
|
||||
|
|
|
|||
|
|
@ -25,11 +25,6 @@
|
|||
#include "text_2.h"
|
||||
#include "text_3.h"
|
||||
|
||||
static inline bool8 CheckAxFlag8000(axdata *ptr)
|
||||
{
|
||||
return (ptr->flags & 0x8000) != 0;
|
||||
}
|
||||
|
||||
static inline bool8 ResetFlags(axdata *ptr)
|
||||
{
|
||||
return ptr->flags = 0;
|
||||
|
|
@ -124,7 +119,7 @@ static void AnimateSprites(void)
|
|||
}
|
||||
|
||||
for (dir = 0; dir < NUM_DIRECTIONS; dir++) {
|
||||
if (CheckAxFlag8000(&gFriendAreasMapPtr->arrowSprites[dir])) {
|
||||
if (AxFlag8000(&gFriendAreasMapPtr->arrowSprites[dir])) {
|
||||
RunAxAnimationFrame(&gFriendAreasMapPtr->arrowSprites[dir]);
|
||||
// Hide non-diagonal arrows when R button is pressed.
|
||||
if ((gRealInputs.held & R_BUTTON) && (dir % 2) == 0)
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ struct Struct_8009A7C
|
|||
u16 **unk4;
|
||||
};
|
||||
|
||||
bool8 sub_8009A7C(struct Struct_8009A7C *a0, s32 a1, s32 a2, s32 a3, bool8 a4, s32 *a5, u16 *a6)
|
||||
bool8 sub_8009A7C(struct Struct_8009A7C *a0, s32 a1, s32 a2, s32 a3, bool8 a4, s32 *a5, s16 *a6)
|
||||
{
|
||||
s32 countY;
|
||||
s32 yId;
|
||||
|
|
|
|||
10
src/sprite.c
10
src/sprite.c
|
|
@ -531,20 +531,12 @@ static void AxResInitUnoriented(axdata *a0, axmain *a1, u32 a2, u32 a3, u32 spri
|
|||
a0->positions = NULL;
|
||||
}
|
||||
|
||||
static inline s16 check_flag_for_80054BC(u16 flags)
|
||||
{
|
||||
if (flags & 0x2000)
|
||||
return 0;
|
||||
else
|
||||
return flags >> 15;
|
||||
}
|
||||
|
||||
// arm9.bin::02001AC4
|
||||
void RunAxAnimationFrame(axdata *a0)
|
||||
{
|
||||
const ax_anim *aData;
|
||||
|
||||
if (!check_flag_for_80054BC(a0->flags))
|
||||
if (!AxFlag8000_Not2000(a0))
|
||||
return;
|
||||
|
||||
if (a0->sub1.poseId >= 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user