through sub_8144018
This commit is contained in:
-145
@@ -5,151 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8143F38
|
|
||||||
sub_8143F38: @ 8143F38
|
|
||||||
push {lr}
|
|
||||||
bl sub_814407C
|
|
||||||
bl sub_81440B4
|
|
||||||
bl sub_8144790
|
|
||||||
bl ClearRamScript
|
|
||||||
bl sub_806E2D0
|
|
||||||
bl sub_806E370
|
|
||||||
ldr r0, _08143F64 @ =gSaveBlock2Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r1, 0x94
|
|
||||||
lsls r1, 3
|
|
||||||
adds r0, r1
|
|
||||||
bl sub_80E7524
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08143F64: .4byte gSaveBlock2Ptr
|
|
||||||
thumb_func_end sub_8143F38
|
|
||||||
|
|
||||||
thumb_func_start sub_8143F68
|
|
||||||
sub_8143F68: @ 8143F68
|
|
||||||
push {r4-r7,lr}
|
|
||||||
adds r7, r0, 0
|
|
||||||
bl sub_8144018
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08143FC0
|
|
||||||
bl sub_8143F38
|
|
||||||
ldr r4, _08143FB0 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r4]
|
|
||||||
ldr r5, _08143FB4 @ =0x000032e4
|
|
||||||
adds r0, r5
|
|
||||||
movs r6, 0xA6
|
|
||||||
lsls r6, 1
|
|
||||||
adds r1, r7, 0
|
|
||||||
adds r2, r6, 0
|
|
||||||
bl memcpy
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r0, r5
|
|
||||||
adds r1, r6, 0
|
|
||||||
bl CalcCRC16WithTable
|
|
||||||
ldr r1, [r4]
|
|
||||||
ldr r3, _08143FB8 @ =0x000032e0
|
|
||||||
adds r2, r1, r3
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
str r0, [r2]
|
|
||||||
ldr r0, _08143FBC @ =0x00003434
|
|
||||||
adds r2, r1, r0
|
|
||||||
adds r1, r5
|
|
||||||
ldrh r0, [r1, 0x2]
|
|
||||||
strh r0, [r2, 0x6]
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08143FC2
|
|
||||||
.align 2, 0
|
|
||||||
_08143FB0: .4byte gSaveBlock1Ptr
|
|
||||||
_08143FB4: .4byte 0x000032e4
|
|
||||||
_08143FB8: .4byte 0x000032e0
|
|
||||||
_08143FBC: .4byte 0x00003434
|
|
||||||
_08143FC0:
|
|
||||||
movs r0, 0
|
|
||||||
_08143FC2:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8143F68
|
|
||||||
|
|
||||||
thumb_func_start sub_8143FC8
|
|
||||||
sub_8143FC8: @ 8143FC8
|
|
||||||
push {r4,r5,lr}
|
|
||||||
ldr r5, _08144004 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r5]
|
|
||||||
ldr r1, _08144008 @ =0x000032e0
|
|
||||||
adds r4, r0, r1
|
|
||||||
adds r1, 0x4
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0xA6
|
|
||||||
lsls r1, 1
|
|
||||||
bl CalcCRC16WithTable
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
ldr r1, [r4]
|
|
||||||
cmp r1, r0
|
|
||||||
bne _08144010
|
|
||||||
ldr r0, [r5]
|
|
||||||
ldr r1, _0814400C @ =0x000032e4
|
|
||||||
adds r0, r1
|
|
||||||
bl sub_8144018
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08144010
|
|
||||||
bl sub_8069DFC
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08144010
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08144012
|
|
||||||
.align 2, 0
|
|
||||||
_08144004: .4byte gSaveBlock1Ptr
|
|
||||||
_08144008: .4byte 0x000032e0
|
|
||||||
_0814400C: .4byte 0x000032e4
|
|
||||||
_08144010:
|
|
||||||
movs r0, 0
|
|
||||||
_08144012:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8143FC8
|
|
||||||
|
|
||||||
thumb_func_start sub_8144018
|
|
||||||
sub_8144018: @ 8144018
|
|
||||||
push {lr}
|
|
||||||
adds r2, r0, 0
|
|
||||||
ldrh r0, [r2]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0814404E
|
|
||||||
ldrb r1, [r2, 0x8]
|
|
||||||
lsls r0, r1, 30
|
|
||||||
lsrs r0, 30
|
|
||||||
cmp r0, 0x2
|
|
||||||
bhi _0814404E
|
|
||||||
movs r0, 0xC0
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0814403C
|
|
||||||
cmp r0, 0x40
|
|
||||||
beq _0814403C
|
|
||||||
cmp r0, 0x80
|
|
||||||
bne _0814404E
|
|
||||||
_0814403C:
|
|
||||||
lsls r0, r1, 26
|
|
||||||
lsrs r0, 28
|
|
||||||
cmp r0, 0x7
|
|
||||||
bhi _0814404E
|
|
||||||
ldrb r0, [r2, 0x9]
|
|
||||||
cmp r0, 0x7
|
|
||||||
bhi _0814404E
|
|
||||||
movs r0, 0x1
|
|
||||||
b _08144050
|
|
||||||
_0814404E:
|
|
||||||
movs r0, 0
|
|
||||||
_08144050:
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_8144018
|
|
||||||
|
|
||||||
thumb_func_start sub_8144054
|
thumb_func_start sub_8144054
|
||||||
sub_8144054: @ 8144054
|
sub_8144054: @ 8144054
|
||||||
push {lr}
|
push {lr}
|
||||||
|
|||||||
@@ -4,5 +4,6 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
u16 sub_8164FCC(u8, u8);
|
u16 sub_8164FCC(u8, u8);
|
||||||
|
void sub_80E7524(u32 *);
|
||||||
|
|
||||||
#endif //GUARD_BATTLE_TOWER_H
|
#endif //GUARD_BATTLE_TOWER_H
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ bool8 FlagGet(u16 id);
|
|||||||
u16 * GetVarPointer(u16 id);
|
u16 * GetVarPointer(u16 id);
|
||||||
bool32 sub_806E2BC(void);
|
bool32 sub_806E2BC(void);
|
||||||
void sub_806E6FC(void);
|
void sub_806E6FC(void);
|
||||||
|
void sub_806E2D0(void);
|
||||||
|
void sub_806E370(void);
|
||||||
|
|
||||||
extern u16 gSpecialVar_0x8000;
|
extern u16 gSpecialVar_0x8000;
|
||||||
extern u16 gSpecialVar_0x8001;
|
extern u16 gSpecialVar_0x8001;
|
||||||
|
|||||||
+32
-4
@@ -264,7 +264,9 @@ struct SaveBlock2
|
|||||||
/*0x098*/ struct Time localTimeOffset;
|
/*0x098*/ struct Time localTimeOffset;
|
||||||
/*0x0A0*/ struct Time lastBerryTreeUpdate;
|
/*0x0A0*/ struct Time lastBerryTreeUpdate;
|
||||||
/*0x0A8*/ u32 field_A8;
|
/*0x0A8*/ u32 field_A8;
|
||||||
/*0x0AC*/ u8 filler_AC[0x9ec];
|
/*0x0AC*/ u8 filler_AC[0x3F4];
|
||||||
|
/*0x4A0*/ u32 unk_4A0[0x2F];
|
||||||
|
/*0x55c*/ u8 filler_55C[0x53C];
|
||||||
/*0xA98*/ u8 unk_A98[2][16];
|
/*0xA98*/ u8 unk_A98[2][16];
|
||||||
/*0xAB8*/ u8 filler_AB8[0x468];
|
/*0xAB8*/ u8 filler_AB8[0x468];
|
||||||
/*0xF20*/ u32 encryptionKey;
|
/*0xF20*/ u32 encryptionKey;
|
||||||
@@ -591,22 +593,48 @@ struct FameCheckerSaveData
|
|||||||
#define NUM_EASY_CHAT_EXTRA_PHRASES 33
|
#define NUM_EASY_CHAT_EXTRA_PHRASES 33
|
||||||
#define EASY_CHAT_EXTRA_PHRASES_SIZE ((NUM_EASY_CHAT_EXTRA_PHRASES >> 3) + (NUM_EASY_CHAT_EXTRA_PHRASES % 8 ? 1 : 0))
|
#define EASY_CHAT_EXTRA_PHRASES_SIZE ((NUM_EASY_CHAT_EXTRA_PHRASES >> 3) + (NUM_EASY_CHAT_EXTRA_PHRASES % 8 ? 1 : 0))
|
||||||
|
|
||||||
|
struct MEventBuffer_3120_Sub
|
||||||
|
{
|
||||||
|
u16 unk_00;
|
||||||
|
u8 unk_02;
|
||||||
|
u16 filler_04[220];
|
||||||
|
};
|
||||||
|
|
||||||
struct MEventBuffer_3120
|
struct MEventBuffer_3120
|
||||||
{
|
{
|
||||||
u32 crc;
|
u32 crc;
|
||||||
u16 data[222];
|
struct MEventBuffer_3120_Sub data;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MEventBuffer_32E0_Sub
|
||||||
|
{
|
||||||
|
u16 unk_00;
|
||||||
|
u16 unk_02;
|
||||||
|
u8 filler_04[4];
|
||||||
|
u8 unk_08_0:2;
|
||||||
|
u8 unk_08_2:4;
|
||||||
|
u8 unk_08_6:2;
|
||||||
|
u8 unk_09;
|
||||||
|
u8 filler_0A[322];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MEventBuffer_32E0
|
struct MEventBuffer_32E0
|
||||||
{
|
{
|
||||||
u32 crc;
|
u32 crc;
|
||||||
u16 data[166];
|
struct MEventBuffer_32E0_Sub data;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MEventBuffer_3430_Sub
|
||||||
|
{
|
||||||
|
u8 filler_00[6];
|
||||||
|
u16 unk_06;
|
||||||
|
u8 filler_08[28];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MEventBuffer_3430
|
struct MEventBuffer_3430
|
||||||
{
|
{
|
||||||
u32 crc;
|
u32 crc;
|
||||||
u16 data[18];
|
struct MEventBuffer_3430_Sub data;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MEventBuffers
|
struct MEventBuffers
|
||||||
|
|||||||
@@ -62,5 +62,6 @@ u8 *GetRamScript(u8 objectId, u8 *script);
|
|||||||
bool32 sub_80991F8(void);
|
bool32 sub_80991F8(void);
|
||||||
u8 *sub_8099244(void);
|
u8 *sub_8099244(void);
|
||||||
void sub_80992A0(u8 *script, u16 scriptSize);
|
void sub_80992A0(u8 *script, u16 scriptSize);
|
||||||
|
bool32 sub_8069DFC(void);
|
||||||
|
|
||||||
#endif // GUARD_SCRIPT_H
|
#endif // GUARD_SCRIPT_H
|
||||||
|
|||||||
+80
-21
@@ -10,6 +10,9 @@
|
|||||||
#include "link_rfu_4.h"
|
#include "link_rfu_4.h"
|
||||||
#include "unk_815c27c.h"
|
#include "unk_815c27c.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
#include "script.h"
|
||||||
|
#include "event_data.h"
|
||||||
|
#include "battle_tower.h"
|
||||||
#include "menews_jisan.h"
|
#include "menews_jisan.h"
|
||||||
|
|
||||||
struct MEvent_Str_1
|
struct MEvent_Str_1
|
||||||
@@ -41,13 +44,17 @@ struct MEventTaskData1
|
|||||||
};
|
};
|
||||||
|
|
||||||
void sub_8143910(u8 taskId);
|
void sub_8143910(u8 taskId);
|
||||||
bool32 sub_8143E64(const u16 * src);
|
bool32 sub_8143E64(const struct MEventBuffer_3120_Sub * src);
|
||||||
u8 sub_815D6B4(u8 *);
|
void sub_8143E9C(void);
|
||||||
|
void sub_8143ED0(void);
|
||||||
|
bool32 sub_8144018(const struct MEventBuffer_32E0_Sub * src);
|
||||||
bool32 sub_815D794(u8 *);
|
bool32 sub_815D794(u8 *);
|
||||||
void sub_81422FC(void);
|
void sub_81422FC(void);
|
||||||
void sub_812B484(void);
|
void sub_812B484(void);
|
||||||
void sub_8143E9C(void);
|
void sub_814407C(void);
|
||||||
void sub_8143ED0(void);
|
void sub_81440B4(void);
|
||||||
|
void sub_8144790(void);
|
||||||
|
u8 sub_815D6B4(u8 *);
|
||||||
|
|
||||||
extern const u8 gUnknown_841DE52[];
|
extern const u8 gUnknown_841DE52[];
|
||||||
extern const u8 gUnknown_841DE53[];
|
extern const u8 gUnknown_841DE53[];
|
||||||
@@ -466,19 +473,19 @@ void sub_8143D24(void)
|
|||||||
sub_80BDE28();
|
sub_80BDE28();
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 * sub_8143D58(void)
|
struct MEventBuffer_3120_Sub * sub_8143D58(void)
|
||||||
{
|
{
|
||||||
return gSaveBlock1Ptr->unk_3120.buffer_000.data;
|
return &gSaveBlock1Ptr->unk_3120.buffer_000.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 * sav1_get_mevent_buffer_1(void)
|
struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void)
|
||||||
{
|
{
|
||||||
return gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
|
return &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 * sav1_get_mevent_buffer_2(void)
|
struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void)
|
||||||
{
|
{
|
||||||
return gSaveBlock1Ptr->unk_3120.buffer_310.data;
|
return &gSaveBlock1Ptr->unk_3120.buffer_310.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct MysteryEventStruct * sub_8143D94(void)
|
struct MysteryEventStruct * sub_8143D94(void)
|
||||||
@@ -496,36 +503,36 @@ void sub_8143DBC(void)
|
|||||||
sub_8143E9C();
|
sub_8143E9C();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_8143DC8(const u16 * src)
|
bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src)
|
||||||
{
|
{
|
||||||
if (!sub_8143E64(src))
|
if (!sub_8143E64(src))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
sub_8143E9C();
|
sub_8143E9C();
|
||||||
memcpy(gSaveBlock1Ptr->unk_3120.buffer_000.data, src, sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data));
|
gSaveBlock1Ptr->unk_3120.buffer_000.data = *src;
|
||||||
gSaveBlock1Ptr->unk_3120.buffer_000.crc = CalcCRC16WithTable((void *)gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data));
|
gSaveBlock1Ptr->unk_3120.buffer_000.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_8143E1C(void)
|
bool32 sub_8143E1C(void)
|
||||||
{
|
{
|
||||||
if (CalcCRC16WithTable((void *)gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data)) != gSaveBlock1Ptr->unk_3120.buffer_000.crc)
|
if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_3120.buffer_000.crc)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (!sub_8143E64(gSaveBlock1Ptr->unk_3120.buffer_000.data))
|
if (!sub_8143E64(&gSaveBlock1Ptr->unk_3120.buffer_000.data))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_8143E64(const u16 * data)
|
bool32 sub_8143E64(const struct MEventBuffer_3120_Sub * data)
|
||||||
{
|
{
|
||||||
if (data[0] == 0)
|
if (data->unk_00 == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_8143E78(void)
|
bool32 sub_8143E78(void)
|
||||||
{
|
{
|
||||||
u16 * data = gSaveBlock1Ptr->unk_3120.buffer_000.data;
|
const struct MEventBuffer_3120_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_000.data;
|
||||||
if (*(u8 *)&data[1] == 0)
|
if (data->unk_02 == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -544,14 +551,66 @@ void sub_8143ED0(void)
|
|||||||
|
|
||||||
bool32 sub_8143EF4(const u8 * src)
|
bool32 sub_8143EF4(const u8 * src)
|
||||||
{
|
{
|
||||||
const u8 * r5 = (const u8 *)gSaveBlock1Ptr->unk_3120.buffer_000.data;
|
const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->unk_3120.buffer_000.data;
|
||||||
u32 i;
|
u32 i;
|
||||||
if (!sub_8143E1C())
|
if (!sub_8143E1C())
|
||||||
return FALSE;
|
return FALSE;
|
||||||
for (i = 0; i < sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data); i++)
|
for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++)
|
||||||
{
|
{
|
||||||
if (r5[i] != src[i])
|
if (r5[i] != src[i])
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_8143F38(void)
|
||||||
|
{
|
||||||
|
sub_814407C();
|
||||||
|
sub_81440B4();
|
||||||
|
sub_8144790();
|
||||||
|
ClearRamScript();
|
||||||
|
sub_806E2D0();
|
||||||
|
sub_806E370();
|
||||||
|
sub_80E7524(gSaveBlock2Ptr->unk_4A0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data)
|
||||||
|
{
|
||||||
|
struct MEventBuffer_3430_Sub * r2;
|
||||||
|
struct MEventBuffer_32E0_Sub * r1;
|
||||||
|
if (!sub_8144018(data))
|
||||||
|
return FALSE;
|
||||||
|
sub_8143F38();
|
||||||
|
memcpy(&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, data, sizeof(struct MEventBuffer_32E0_Sub));
|
||||||
|
gSaveBlock1Ptr->unk_3120.buffer_1c0.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub));
|
||||||
|
r2 = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
|
||||||
|
r1 = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
|
||||||
|
r2->unk_06 = r1->unk_02;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_8143FC8(void)
|
||||||
|
{
|
||||||
|
if (gSaveBlock1Ptr->unk_3120.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)))
|
||||||
|
return FALSE;
|
||||||
|
if (!sub_8144018(&gSaveBlock1Ptr->unk_3120.buffer_1c0.data))
|
||||||
|
return FALSE;
|
||||||
|
if (!sub_8069DFC())
|
||||||
|
return FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_8144018(const struct MEventBuffer_32E0_Sub * data)
|
||||||
|
{
|
||||||
|
if (data->unk_00 == 0)
|
||||||
|
return FALSE;
|
||||||
|
if (data->unk_08_0 > 2)
|
||||||
|
return FALSE;
|
||||||
|
if (!(data->unk_08_6 == 0 || data->unk_08_6 == 1 || data->unk_08_6 == 2))
|
||||||
|
return FALSE;
|
||||||
|
if (data->unk_08_2 > 7)
|
||||||
|
return FALSE;
|
||||||
|
if (data->unk_09 > 7)
|
||||||
|
return FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user