mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-09-09 08:05:12 -05:00
through ov53_021E6E7C
This commit is contained in:
458
asm/overlay_53.s
458
asm/overlay_53.s
@@ -21,457 +21,13 @@
|
||||
.extern ov53_021E6908
|
||||
.extern ov53_021E6928
|
||||
.extern ov53_021E6988
|
||||
|
||||
thumb_func_start ov53_021E6B9C
|
||||
ov53_021E6B9C: ; 0x021E6B9C
|
||||
push {r3, r4}
|
||||
mov r2, #0x1f
|
||||
add r4, r0, #0
|
||||
asr r3, r0, #5
|
||||
and r4, r2
|
||||
and r3, r2
|
||||
asr r0, r0, #0xa
|
||||
add r4, r4, r1
|
||||
add r3, r3, r1
|
||||
add r0, r0, r1
|
||||
cmp r4, #0x1f
|
||||
ble _021E6BB8
|
||||
add r4, r2, #0
|
||||
b _021E6BBE
|
||||
_021E6BB8:
|
||||
cmp r4, #0
|
||||
bge _021E6BBE
|
||||
mov r4, #0
|
||||
_021E6BBE:
|
||||
cmp r3, #0x1f
|
||||
ble _021E6BC6
|
||||
mov r3, #0x1f
|
||||
b _021E6BCC
|
||||
_021E6BC6:
|
||||
cmp r3, #0
|
||||
bge _021E6BCC
|
||||
mov r3, #0
|
||||
_021E6BCC:
|
||||
cmp r0, #0x1f
|
||||
ble _021E6BD4
|
||||
mov r0, #0x1f
|
||||
b _021E6BDA
|
||||
_021E6BD4:
|
||||
cmp r0, #0
|
||||
bge _021E6BDA
|
||||
mov r0, #0
|
||||
_021E6BDA:
|
||||
lsl r1, r0, #0xa
|
||||
lsl r0, r3, #5
|
||||
orr r0, r1
|
||||
orr r0, r4
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
pop {r3, r4}
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end ov53_021E6B9C
|
||||
|
||||
thumb_func_start ov53_021E6BEC
|
||||
ov53_021E6BEC: ; 0x021E6BEC
|
||||
push {r3, r4, r5, r6, lr}
|
||||
sub sp, #4
|
||||
add r5, r0, #0
|
||||
ldr r0, _021E6C9C ; =0x00000163
|
||||
add r6, r1, #0
|
||||
ldrb r0, [r5, r0]
|
||||
mov r4, #0
|
||||
mov r1, #1
|
||||
cmp r0, #0
|
||||
beq _021E6C06
|
||||
cmp r0, #1
|
||||
beq _021E6C06
|
||||
add r1, r4, #0
|
||||
_021E6C06:
|
||||
cmp r1, #0
|
||||
bne _021E6C0E
|
||||
bl GF_AssertFail
|
||||
_021E6C0E:
|
||||
cmp r6, #0
|
||||
bne _021E6C2E
|
||||
mov r0, #0x5a
|
||||
lsl r0, r0, #2
|
||||
ldr r2, [r5, r0]
|
||||
add r1, r2, #1
|
||||
str r1, [r5, r0]
|
||||
mov r0, #0xa
|
||||
mul r0, r2
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
bl GF_SinDeg
|
||||
lsl r0, r0, #3
|
||||
asr r4, r0, #0xc
|
||||
b _021E6C36
|
||||
_021E6C2E:
|
||||
mov r0, #0x5a
|
||||
mov r1, #0
|
||||
lsl r0, r0, #2
|
||||
str r1, [r5, r0]
|
||||
_021E6C36:
|
||||
ldr r0, _021E6CA0 ; =0x00000136
|
||||
lsl r1, r4, #0x18
|
||||
ldrh r0, [r5, r0]
|
||||
asr r1, r1, #0x18
|
||||
bl ov53_021E6B9C
|
||||
add r1, sp, #0
|
||||
strh r0, [r1]
|
||||
ldr r0, _021E6CA4 ; =0x00001CFF
|
||||
mov r1, #0
|
||||
bl ov53_021E6B9C
|
||||
add r1, sp, #0
|
||||
strh r0, [r1, #2]
|
||||
ldr r3, _021E6C9C ; =0x00000163
|
||||
mov r0, #6
|
||||
ldrb r3, [r5, r3]
|
||||
add r1, sp, #0
|
||||
mov r2, #4
|
||||
lsl r4, r3, #2
|
||||
ldr r3, _021E6CA8 ; =ov53_021E8508
|
||||
ldr r3, [r3, r4]
|
||||
lsl r3, r3, #0x11
|
||||
lsr r3, r3, #0x10
|
||||
bl BG_LoadPlttData
|
||||
ldr r0, _021E6CA0 ; =0x00000136
|
||||
add r1, sp, #0
|
||||
ldrh r2, [r5, r0]
|
||||
add r0, #0x2d
|
||||
strh r2, [r1]
|
||||
ldr r2, _021E6CAC ; =0x0000739B
|
||||
strh r2, [r1, #2]
|
||||
ldrb r0, [r5, r0]
|
||||
cmp r0, #0
|
||||
bne _021E6C82
|
||||
mov r3, #1
|
||||
b _021E6C84
|
||||
_021E6C82:
|
||||
mov r3, #0
|
||||
_021E6C84:
|
||||
lsl r4, r3, #2
|
||||
ldr r3, _021E6CA8 ; =ov53_021E8508
|
||||
mov r0, #6
|
||||
ldr r3, [r3, r4]
|
||||
add r1, sp, #0
|
||||
lsl r3, r3, #0x11
|
||||
mov r2, #4
|
||||
lsr r3, r3, #0x10
|
||||
bl BG_LoadPlttData
|
||||
add sp, #4
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
.balign 4, 0
|
||||
_021E6C9C: .word 0x00000163
|
||||
_021E6CA0: .word 0x00000136
|
||||
_021E6CA4: .word 0x00001CFF
|
||||
_021E6CA8: .word ov53_021E8508
|
||||
_021E6CAC: .word 0x0000739B
|
||||
thumb_func_end ov53_021E6BEC
|
||||
|
||||
thumb_func_start ov53_021E6CB0
|
||||
ov53_021E6CB0: ; 0x021E6CB0
|
||||
push {r3, lr}
|
||||
ldr r1, _021E6CD8 ; =0x00000136
|
||||
mov r2, #4
|
||||
ldrh r1, [r0, r1]
|
||||
add r0, sp, #0
|
||||
mov r3, #0x18
|
||||
strh r1, [r0]
|
||||
ldr r1, _021E6CDC ; =0x0000739B
|
||||
strh r1, [r0, #2]
|
||||
mov r0, #6
|
||||
add r1, sp, #0
|
||||
bl BG_LoadPlttData
|
||||
mov r0, #6
|
||||
add r1, sp, #0
|
||||
mov r2, #4
|
||||
mov r3, #0x1c
|
||||
bl BG_LoadPlttData
|
||||
pop {r3, pc}
|
||||
.balign 4, 0
|
||||
_021E6CD8: .word 0x00000136
|
||||
_021E6CDC: .word 0x0000739B
|
||||
thumb_func_end ov53_021E6CB0
|
||||
|
||||
thumb_func_start ov53_021E6CE0
|
||||
ov53_021E6CE0: ; 0x021E6CE0
|
||||
push {r3, r4, r5, r6, lr}
|
||||
sub sp, #0xc
|
||||
ldr r3, _021E6DD8 ; =ov53_021E8530
|
||||
add r5, r0, #0
|
||||
mov r4, #0
|
||||
add r2, sp, #0
|
||||
mov r1, #0xc
|
||||
_021E6CEE:
|
||||
ldrb r0, [r3]
|
||||
add r3, r3, #1
|
||||
strb r0, [r2]
|
||||
add r2, r2, #1
|
||||
sub r1, r1, #1
|
||||
bne _021E6CEE
|
||||
ldr r0, _021E6DDC ; =gSystem + 0x40
|
||||
ldrh r0, [r0, #0x24]
|
||||
cmp r0, #0
|
||||
beq _021E6D38
|
||||
add r0, sp, #0
|
||||
bl TouchscreenHitbox_FindRectAtTouchNew
|
||||
add r6, r0, #0
|
||||
mov r0, #0
|
||||
mvn r0, r0
|
||||
cmp r6, r0
|
||||
beq _021E6DD0
|
||||
ldr r0, _021E6DE0 ; =0x00000163
|
||||
mov r1, #1
|
||||
strb r6, [r5, r0]
|
||||
add r2, r0, #3
|
||||
strb r1, [r5, r2]
|
||||
mov r2, #2
|
||||
add r0, r0, #2
|
||||
strb r2, [r5, r0]
|
||||
add r0, r5, #0
|
||||
bl ov53_021E6BEC
|
||||
ldr r0, _021E6DE4 ; =SEQ_SE_DP_SELECT
|
||||
bl PlaySE
|
||||
mov r0, #0x5f
|
||||
lsl r0, r0, #2
|
||||
str r6, [r5, r0]
|
||||
mov r4, #1
|
||||
b _021E6DD0
|
||||
_021E6D38:
|
||||
ldr r0, _021E6DE8 ; =0x00000162
|
||||
ldrb r0, [r5, r0]
|
||||
cmp r0, #0
|
||||
bne _021E6D5E
|
||||
ldr r0, _021E6DEC ; =gSystem
|
||||
ldr r1, [r0, #0x48]
|
||||
mov r0, #0x31
|
||||
tst r0, r1
|
||||
beq _021E6DD0
|
||||
ldr r0, _021E6DE4 ; =SEQ_SE_DP_SELECT
|
||||
bl PlaySE
|
||||
ldr r0, _021E6DE8 ; =0x00000162
|
||||
mov r1, #1
|
||||
strb r1, [r5, r0]
|
||||
add r0, r5, #0
|
||||
bl ov53_021E6BEC
|
||||
b _021E6DD0
|
||||
_021E6D5E:
|
||||
add r0, r5, #0
|
||||
mov r1, #0
|
||||
bl ov53_021E6BEC
|
||||
ldr r0, _021E6DEC ; =gSystem
|
||||
mov r1, #0x20
|
||||
ldr r0, [r0, #0x48]
|
||||
tst r1, r0
|
||||
beq _021E6D84
|
||||
ldr r0, _021E6DE0 ; =0x00000163
|
||||
ldrb r1, [r5, r0]
|
||||
cmp r1, #0
|
||||
beq _021E6DD0
|
||||
sub r1, r1, #1
|
||||
strb r1, [r5, r0]
|
||||
ldr r0, _021E6DE4 ; =SEQ_SE_DP_SELECT
|
||||
bl PlaySE
|
||||
b _021E6DD0
|
||||
_021E6D84:
|
||||
mov r1, #0x10
|
||||
tst r1, r0
|
||||
beq _021E6DA4
|
||||
ldr r0, _021E6DE0 ; =0x00000163
|
||||
sub r1, r0, #2
|
||||
ldrb r1, [r5, r1]
|
||||
ldrb r2, [r5, r0]
|
||||
sub r1, r1, #1
|
||||
cmp r2, r1
|
||||
beq _021E6DD0
|
||||
add r1, r2, #1
|
||||
strb r1, [r5, r0]
|
||||
ldr r0, _021E6DE4 ; =SEQ_SE_DP_SELECT
|
||||
bl PlaySE
|
||||
b _021E6DD0
|
||||
_021E6DA4:
|
||||
mov r1, #1
|
||||
tst r0, r1
|
||||
beq _021E6DD0
|
||||
ldr r0, _021E6DE8 ; =0x00000162
|
||||
mov r2, #0
|
||||
strb r2, [r5, r0]
|
||||
add r2, r0, #4
|
||||
strb r1, [r5, r2]
|
||||
mov r2, #2
|
||||
add r0, r0, #3
|
||||
strb r2, [r5, r0]
|
||||
add r0, r5, #0
|
||||
bl ov53_021E6BEC
|
||||
ldr r0, _021E6DE4 ; =SEQ_SE_DP_SELECT
|
||||
bl PlaySE
|
||||
ldr r0, _021E6DE0 ; =0x00000163
|
||||
mov r4, #1
|
||||
ldrb r1, [r5, r0]
|
||||
add r0, #0x19
|
||||
str r1, [r5, r0]
|
||||
_021E6DD0:
|
||||
add r0, r4, #0
|
||||
add sp, #0xc
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
nop
|
||||
_021E6DD8: .word ov53_021E8530
|
||||
_021E6DDC: .word gSystem + 0x40
|
||||
_021E6DE0: .word 0x00000163
|
||||
_021E6DE4: .word SEQ_SE_DP_SELECT
|
||||
_021E6DE8: .word 0x00000162
|
||||
_021E6DEC: .word gSystem
|
||||
thumb_func_end ov53_021E6CE0
|
||||
|
||||
thumb_func_start ov53_021E6DF0
|
||||
ov53_021E6DF0: ; 0x021E6DF0
|
||||
mov r1, #5
|
||||
mov r2, #0
|
||||
lsl r1, r1, #6
|
||||
str r2, [r0, r1]
|
||||
add r1, r1, #4
|
||||
str r2, [r0, r1]
|
||||
bx lr
|
||||
.balign 4, 0
|
||||
thumb_func_end ov53_021E6DF0
|
||||
|
||||
thumb_func_start ov53_021E6E00
|
||||
ov53_021E6E00: ; 0x021E6E00
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #0x40
|
||||
mov r1, #0x51
|
||||
add r2, r0, #0
|
||||
lsl r1, r1, #2
|
||||
ldr r0, [r2, r1]
|
||||
mov r7, #0
|
||||
cmp r0, #0
|
||||
beq _021E6E16
|
||||
sub r0, r0, #1
|
||||
b _021E6E22
|
||||
_021E6E16:
|
||||
sub r0, r1, #4
|
||||
ldr r0, [r2, r0]
|
||||
add r3, r0, #1
|
||||
sub r0, r1, #4
|
||||
str r3, [r2, r0]
|
||||
mov r0, #8
|
||||
_021E6E22:
|
||||
mov r3, #0x4d
|
||||
lsl r3, r3, #2
|
||||
str r0, [r2, r1]
|
||||
ldrh r0, [r2, r3]
|
||||
cmp r0, #0
|
||||
bne _021E6E34
|
||||
ldr r6, _021E6E74 ; =ov53_021E859C
|
||||
add r5, sp, #0x28
|
||||
b _021E6E38
|
||||
_021E6E34:
|
||||
ldr r6, _021E6E78 ; =ov53_021E85B4
|
||||
add r5, sp, #0x10
|
||||
_021E6E38:
|
||||
add r4, r5, #0
|
||||
ldmia r6!, {r0, r1}
|
||||
stmia r5!, {r0, r1}
|
||||
ldmia r6!, {r0, r1}
|
||||
stmia r5!, {r0, r1}
|
||||
ldmia r6!, {r0, r1}
|
||||
add r3, #0xc
|
||||
stmia r5!, {r0, r1}
|
||||
ldr r0, [r2, r3]
|
||||
lsl r0, r0, #2
|
||||
ldr r1, [r4, r0]
|
||||
cmp r1, #0xff
|
||||
bne _021E6E56
|
||||
mov r7, #1
|
||||
b _021E6E6C
|
||||
_021E6E56:
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
str r0, [sp, #8]
|
||||
ldr r0, [r2]
|
||||
mov r3, #1
|
||||
str r0, [sp, #0xc]
|
||||
ldr r2, [r2, #0x18]
|
||||
mov r0, #0x78
|
||||
bl GfGfxLoader_LoadCharData
|
||||
_021E6E6C:
|
||||
add r0, r7, #0
|
||||
add sp, #0x40
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_021E6E74: .word ov53_021E859C
|
||||
_021E6E78: .word ov53_021E85B4
|
||||
thumb_func_end ov53_021E6E00
|
||||
|
||||
thumb_func_start ov53_021E6E7C
|
||||
ov53_021E6E7C: ; 0x021E6E7C
|
||||
push {r3, r4, lr}
|
||||
sub sp, #0x1c
|
||||
add r0, sp, #0xc
|
||||
add r1, sp, #0
|
||||
mov r4, #msg_0219_00001
|
||||
bl GF_RTC_CopyDateTime
|
||||
ldr r0, [sp]
|
||||
ldr r3, [sp, #4]
|
||||
mov r1, #0x64
|
||||
add r2, r0, #0
|
||||
mul r2, r1
|
||||
add r0, r3, r2
|
||||
lsl r1, r1, #2
|
||||
cmp r0, r1
|
||||
blo _021E6EA2
|
||||
ldr r1, _021E6EE4 ; =0x00000423
|
||||
cmp r0, r1
|
||||
bls _021E6EDC
|
||||
_021E6EA2:
|
||||
ldr r1, _021E6EE8 ; =0x0000044C
|
||||
cmp r0, r1
|
||||
blo _021E6EB2
|
||||
ldr r1, _021E6EEC ; =0x00000617
|
||||
cmp r0, r1
|
||||
bhi _021E6EB2
|
||||
mov r4, #msg_0219_00002
|
||||
b _021E6EDC
|
||||
_021E6EB2:
|
||||
mov r1, #0x19
|
||||
lsl r1, r1, #6
|
||||
cmp r0, r1
|
||||
blo _021E6EC4
|
||||
ldr r1, _021E6EF0 ; =0x00000743
|
||||
cmp r0, r1
|
||||
bhi _021E6EC4
|
||||
mov r4, #msg_0219_00003
|
||||
b _021E6EDC
|
||||
_021E6EC4:
|
||||
ldr r1, _021E6EF4 ; =0x0000076C
|
||||
cmp r0, r1
|
||||
blo _021E6ED4
|
||||
ldr r1, _021E6EF8 ; =0x00000937
|
||||
cmp r0, r1
|
||||
bhi _021E6ED4
|
||||
mov r4, #msg_0219_00004
|
||||
b _021E6EDC
|
||||
_021E6ED4:
|
||||
ldr r1, _021E6EFC ; =0x00000167
|
||||
cmp r0, r1
|
||||
bhi _021E6EDC
|
||||
mov r4, #msg_0219_00005
|
||||
_021E6EDC:
|
||||
add r0, r4, #0
|
||||
add sp, #0x1c
|
||||
pop {r3, r4, pc}
|
||||
nop
|
||||
_021E6EE4: .word 0x00000423
|
||||
_021E6EE8: .word 0x0000044C
|
||||
_021E6EEC: .word 0x00000617
|
||||
_021E6EF0: .word 0x00000743
|
||||
_021E6EF4: .word 0x0000076C
|
||||
_021E6EF8: .word 0x00000937
|
||||
_021E6EFC: .word 0x00000167
|
||||
thumb_func_end ov53_021E6E7C
|
||||
.extern ov53_021E6B9C
|
||||
.extern ov53_021E6BEC
|
||||
.extern ov53_021E6CB0
|
||||
.extern ov53_021E6CE0
|
||||
.extern ov53_021E6DF0
|
||||
.extern ov53_021E6E00
|
||||
.extern ov53_021E6E7C
|
||||
|
||||
thumb_func_start ov53_021E6F00
|
||||
ov53_021E6F00: ; 0x021E6F00
|
||||
|
||||
13
scripts/palconv.sh
Executable file
13
scripts/palconv.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# palconv
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo -e "usage: $(basename "$0") RGBHEX" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
if ! [[ $1 =~ ^(0x[0-9a-fA-F]+|[0-9]+)$ ]]; then
|
||||
echo -e "error: could not interpret color as base 10 or 16 integer" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
printf "RGB(%d, %d, %d)\n" $((($1)&31)) $((($1>>5)&31)) $((($1>>10)&31))
|
||||
@@ -3,11 +3,13 @@
|
||||
#include "global.h"
|
||||
|
||||
#include "msgdata/msg.naix"
|
||||
#include "msgdata/msg/msg_0219.h"
|
||||
|
||||
#include "font.h"
|
||||
#include "gf_gfx_loader.h"
|
||||
#include "launch_application.h"
|
||||
#include "main.h"
|
||||
#include "math_util.h"
|
||||
#include "overlay_36.h"
|
||||
#include "overlay_manager.h"
|
||||
#include "player_data.h"
|
||||
@@ -69,9 +71,11 @@ typedef struct OaksSpeechData {
|
||||
u16 unk_136;
|
||||
u8 filler_138[0x4];
|
||||
int unk_13C;
|
||||
u8 filler_140[0x20];
|
||||
int unk_140;
|
||||
int unk_144;
|
||||
u8 filler_148[0x18];
|
||||
OakSpeechData_Sub160 unk_160;
|
||||
u8 filler_168[4];
|
||||
int unk_168;
|
||||
int unk_16C;
|
||||
u8 filler_170[0x8];
|
||||
OaksSpeechData_Sub178 *unk_178;
|
||||
@@ -99,6 +103,13 @@ void ov53_021E6824(OaksSpeechData *data, int a1);
|
||||
void ov53_021E6908(OakSpeechData_Sub160 *dest, int a1);
|
||||
void ov53_021E6928(OaksSpeechData *data, int a1);
|
||||
int ov53_021E6988(OaksSpeechData *data, int a1);
|
||||
u16 ov53_021E6B9C(u16 a0, s8 a1);
|
||||
void ov53_021E6BEC(OaksSpeechData *data, int a1);
|
||||
void ov53_021E6CB0(OaksSpeechData *data);
|
||||
BOOL ov53_021E6CE0(OaksSpeechData *data);
|
||||
void ov53_021E6DF0(OaksSpeechData *data);
|
||||
BOOL ov53_021E6E00(OaksSpeechData *data);
|
||||
int ov53_021E6E7C(OaksSpeechData *data);
|
||||
BOOL ov53_021E6F9C(OaksSpeechData *data);
|
||||
void ov53_021E7ECC(OaksSpeechData *data);
|
||||
void ov53_021E7F24(OaksSpeechData *data);
|
||||
@@ -111,6 +122,7 @@ extern const WindowTemplate ov53_021E8500;
|
||||
extern const int ov53_021E86B0[][4];
|
||||
extern const WindowTemplate ov53_021E8680[][3];
|
||||
extern const int ov53_021E8604[][3];
|
||||
extern const int ov53_021E8508[];
|
||||
|
||||
// note: this is an artifact from -ipa file
|
||||
extern const u32 ov53_021E84F8[];
|
||||
@@ -854,3 +866,163 @@ int ov53_021E6988(OaksSpeechData *data, int a1) {
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
u16 ov53_021E6B9C(u16 a0, s8 a1) {
|
||||
int r = a0 & 0x1F;
|
||||
int g = (a0 >> 5) & 0x1F;
|
||||
int b = (a0 >> 10);
|
||||
|
||||
r += a1;
|
||||
g += a1;
|
||||
b += a1;
|
||||
|
||||
if (r > 31) {
|
||||
r = 31;
|
||||
} else if (r < 0) {
|
||||
r = 0;
|
||||
}
|
||||
if (g > 31) {
|
||||
g = 31;
|
||||
} else if (g < 0) {
|
||||
g = 0;
|
||||
}
|
||||
if (b > 31) {
|
||||
b = 31;
|
||||
} else if (b < 0) {
|
||||
b = 0;
|
||||
}
|
||||
return (b << 10) | (g << 5) | r;
|
||||
}
|
||||
|
||||
void ov53_021E6BEC(OaksSpeechData *data, int a1) {
|
||||
int r4 = 0;
|
||||
u16 sp0[2];
|
||||
|
||||
GF_ASSERT(data->unk_160.unk_3 == 0 || data->unk_160.unk_3 == 1);
|
||||
if (a1 == 0) {
|
||||
r4 = (GF_SinDeg((data->unk_168++) * 10) * 8) >> FX32_SHIFT;
|
||||
} else {
|
||||
data->unk_168 = 0;
|
||||
}
|
||||
sp0[0] = ov53_021E6B9C(data->unk_136, r4);
|
||||
sp0[1] = ov53_021E6B9C(RGB(31, 7, 7), 0);
|
||||
BG_LoadPlttData(6, sp0, 4, ov53_021E8508[data->unk_160.unk_3] * 2);
|
||||
sp0[0] = data->unk_136;
|
||||
sp0[1] = RGB(27, 28, 28);
|
||||
BG_LoadPlttData(6, sp0, 4, ov53_021E8508[!data->unk_160.unk_3] * 2);
|
||||
}
|
||||
|
||||
void ov53_021E6CB0(OaksSpeechData *data) {
|
||||
u16 sp0[2];
|
||||
|
||||
sp0[0] = data->unk_136;
|
||||
sp0[1] = RGB(27, 28, 28);
|
||||
BG_LoadPlttData(6, sp0, 4, 0x18);
|
||||
BG_LoadPlttData(6, sp0, 4, 0x1C);
|
||||
}
|
||||
|
||||
BOOL ov53_021E6CE0(OaksSpeechData *data) {
|
||||
BOOL ret = FALSE;
|
||||
int r6;
|
||||
|
||||
extern const TouchscreenHitbox ov53_021E8530[3];
|
||||
TouchscreenHitbox sp0[3];
|
||||
ARRAY_ASSIGN(sp0, ov53_021E8530);
|
||||
|
||||
if (gSystem.touchNew) {
|
||||
r6 = TouchscreenHitbox_FindRectAtTouchNew(sp0);
|
||||
if (r6 != -1) {
|
||||
data->unk_160.unk_3 = r6;
|
||||
data->unk_160.unk_6 = 1;
|
||||
data->unk_160.unk_5 = 2;
|
||||
ov53_021E6BEC(data, 1);
|
||||
PlaySE(SEQ_SE_DP_SELECT);
|
||||
data->unk_17C = r6;
|
||||
ret = TRUE;
|
||||
}
|
||||
} else if (!data->unk_160.unk_2) {
|
||||
if (gSystem.newKeys & (PAD_BUTTON_A | PAD_KEY_LEFT | PAD_KEY_RIGHT)) {
|
||||
PlaySE(SEQ_SE_DP_SELECT);
|
||||
data->unk_160.unk_2 = 1;
|
||||
ov53_021E6BEC(data, 1);
|
||||
}
|
||||
} else {
|
||||
ov53_021E6BEC(data, 0);
|
||||
if (gSystem.newKeys & PAD_KEY_LEFT) {
|
||||
if (data->unk_160.unk_3 != 0) {
|
||||
--data->unk_160.unk_3;
|
||||
PlaySE(SEQ_SE_DP_SELECT);
|
||||
}
|
||||
} else if (gSystem.newKeys & PAD_KEY_RIGHT) {
|
||||
if (data->unk_160.unk_3 != data->unk_160.unk_1 - 1) {
|
||||
++data->unk_160.unk_3;
|
||||
PlaySE(SEQ_SE_DP_SELECT);
|
||||
}
|
||||
} else if (gSystem.newKeys & PAD_BUTTON_A) {
|
||||
data->unk_160.unk_2 = 0;
|
||||
data->unk_160.unk_6 = 1;
|
||||
data->unk_160.unk_5 = 2;
|
||||
ov53_021E6BEC(data, 1);
|
||||
PlaySE(SEQ_SE_DP_SELECT);
|
||||
ret = TRUE;
|
||||
data->unk_17C = data->unk_160.unk_3;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ov53_021E6DF0(OaksSpeechData *data) {
|
||||
data->unk_140 = 0;
|
||||
data->unk_144 = 0;
|
||||
}
|
||||
|
||||
BOOL ov53_021E6E00(OaksSpeechData *data) {
|
||||
BOOL ret = FALSE;
|
||||
int r1;
|
||||
|
||||
if (data->unk_144 != 0) {
|
||||
--data->unk_144;
|
||||
} else {
|
||||
++data->unk_140;
|
||||
data->unk_144 = 8;
|
||||
}
|
||||
if (data->playerGender == PLAYER_GENDER_MALE) {
|
||||
extern const int ov53_021E859C[6];
|
||||
int sp28[6];
|
||||
ARRAY_ASSIGN(sp28, ov53_021E859C);
|
||||
r1 = sp28[data->unk_140];
|
||||
} else {
|
||||
extern const int ov53_021E85B4[6];
|
||||
int sp10[6];
|
||||
ARRAY_ASSIGN(sp10, ov53_021E85B4);
|
||||
r1 = sp10[data->unk_140];
|
||||
}
|
||||
if (r1 == 0xFF) {
|
||||
ret = TRUE;
|
||||
} else {
|
||||
GfGfxLoader_LoadCharData(NARC_a_1_2_0, r1, data->bgConfig, GF_BG_LYR_MAIN_1, 0, 0, FALSE, data->heapId);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ov53_021E6E7C(OaksSpeechData *data) {
|
||||
RTCDate date;
|
||||
RTCTime time;
|
||||
int ret = msg_0219_00001;
|
||||
GF_RTC_CopyDateTime(&date, &time);
|
||||
u32 time_hhmm = time.minute + time.hour * 100;
|
||||
if (time_hhmm >= 400 && time_hhmm <= 1059) {
|
||||
ret = msg_0219_00001;
|
||||
} else if (time_hhmm >= 1100 && time_hhmm <= 1559) {
|
||||
ret = msg_0219_00002;
|
||||
} else if (time_hhmm >= 1600 && time_hhmm <= 1859) {
|
||||
ret = msg_0219_00003;
|
||||
} else if (time_hhmm >= 1900 && time_hhmm <= 2359) {
|
||||
ret = msg_0219_00004;
|
||||
} else if (time_hhmm >= 0 && time_hhmm <= 359) {
|
||||
ret = msg_0219_00005;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user