summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/secret_base.s125
-rw-r--r--data/scripts/maps/SlateportCity.inc8
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc8
-rw-r--r--include/global.h1
-rw-r--r--ld_script.txt1
-rwxr-xr-xsrc/secret_base_80bb4ac.c32
6 files changed, 42 insertions, 133 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 81225ba4b..607e1644f 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -6,131 +6,6 @@
.text
- thumb_func_start sub_80BB4AC
-sub_80BB4AC: @ 80BB4AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- movs r0, 0
- strb r0, [r3]
- movs r2, 0
- adds r4, r3, 0x2
- movs r5, 0xFF
-_080BB4C4:
- adds r0, r4, r2
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x6
- bls _080BB4C4
- movs r2, 0
- adds r5, r3, 0
- adds r5, 0x12
- adds r6, r3, 0
- adds r6, 0x22
- adds r7, r3, 0
- adds r7, 0x4C
- adds r0, r3, 0
- adds r0, 0x34
- str r0, [sp]
- adds r1, r3, 0
- adds r1, 0x9A
- str r1, [sp, 0x4]
- movs r0, 0x7C
- adds r0, r3
- mov r10, r0
- movs r1, 0x88
- adds r1, r3
- mov r9, r1
- movs r0, 0x94
- adds r0, r3
- mov r8, r0
- adds r1, r3, 0
- adds r1, 0x9
- movs r4, 0
-_080BB508:
- adds r0, r1, r2
- strb r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080BB508
- movs r0, 0
- movs r1, 0
- strh r1, [r3, 0xE]
- strb r0, [r3, 0x10]
- strb r0, [r3, 0x11]
- movs r0, 0
- strb r0, [r3, 0x1]
- movs r2, 0
- adds r4, r5, 0
- adds r3, r6, 0
-_080BB52A:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080BB52A
- movs r2, 0
- mov r12, r7
- movs r5, 0
-_080BB542:
- movs r1, 0
- adds r7, r2, 0x1
- lsls r4, r2, 2
- lsls r6, r2, 1
- adds r3, r4, 0
-_080BB54C:
- adds r0, r3, r1
- lsls r0, 1
- add r0, r12
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080BB54C
- ldr r1, [sp]
- adds r0, r1, r4
- str r5, [r0]
- ldr r1, [sp, 0x4]
- adds r0, r1, r2
- strb r5, [r0]
- mov r1, r10
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r9
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r8
- adds r0, r1, r2
- strb r5, [r0]
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080BB542
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB4AC
-
thumb_func_start ResetSecretBase
ResetSecretBase: @ 80BB594
push {lr}
diff --git a/data/scripts/maps/SlateportCity.inc b/data/scripts/maps/SlateportCity.inc
index 19f9af2eb..6125c4871 100644
--- a/data/scripts/maps/SlateportCity.inc
+++ b/data/scripts/maps/SlateportCity.inc
@@ -4,11 +4,11 @@ SlateportCity_MapScripts:: @ 814BA36
SlateportCity_MapScript1_14BA3C:: @ 814BA3C
.ifdef SAPPHIRE
- setvar 0x4010, 118
- setvar 0x4011, 117
+ setvar 0x4010, MAP_OBJ_GFX_AQUA_MEMBER_F
+ setvar 0x4011, MAP_OBJ_GFX_AQUA_MEMBER_M
.else
- setvar 0x4010, 120
- setvar 0x4011, 119
+ setvar 0x4010, MAP_OBJ_GFX_MAGMA_MEMBER_F
+ setvar 0x4011, MAP_OBJ_GFX_MAGMA_MEMBER_M
.endif
setvar 0x40aa, 0
call SlateportCity_EventScript_14BA5C
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
index 0bfeb4f5a..e84f8ccc6 100644
--- a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
@@ -4,11 +4,11 @@ SlateportCity_OceanicMuseum_1F_MapScripts:: @ 8155ACA
SlateportCity_OceanicMuseum_1F_MapScript1_155AD0:: @ 8155AD0
.ifdef SAPPHIRE
- setvar 0x4010, 118
- setvar 0x4011, 117
+ setvar 0x4010, MAP_OBJ_GFX_AQUA_MEMBER_F
+ setvar 0x4011, MAP_OBJ_GFX_AQUA_MEMBER_M
.else
- setvar 0x4010, 120
- setvar 0x4011, 119
+ setvar 0x4010, MAP_OBJ_GFX_MAGMA_MEMBER_F
+ setvar 0x4011, MAP_OBJ_GFX_MAGMA_MEMBER_M
.endif
end
diff --git a/include/global.h b/include/global.h
index 4cbbef5cc..e106e2b6f 100644
--- a/include/global.h
+++ b/include/global.h
@@ -98,6 +98,7 @@ struct SecretBaseRecord
u8 sbr_field_1_0:4;
u8 gender:1;
u8 sbr_field_1_5:1;
+ u8 sbr_field_1_6:2;
u8 sbr_field_2[7]; // 0xFF bytes?
u8 trainerId[4]; // byte 0 is used for determining trainer class
u16 sbr_field_e;
diff --git a/ld_script.txt b/ld_script.txt
index 0cc6ef0f0..99b19b5e0 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -174,6 +174,7 @@ SECTIONS {
src/record_mixing.o(.text);
asm/record_mixing.o(.text);
asm/sound_check_menu.o(.text);
+ src/secret_base_80bb4ac.o(.text);
asm/secret_base.o(.text);
src/secret_base.o(.text);
asm/secret_base.o(.text_80BC1D0);
diff --git a/src/secret_base_80bb4ac.c b/src/secret_base_80bb4ac.c
new file mode 100755
index 000000000..f3f3641fc
--- /dev/null
+++ b/src/secret_base_80bb4ac.c
@@ -0,0 +1,32 @@
+#include "global.h"
+
+void sub_80BB4AC(struct SecretBaseRecord *record) {
+ u16 i;
+ u16 j;
+ record->sbr_field_0 = 0;
+ for (i=0; i<7; i++)
+ record->sbr_field_2[i] = 0xff;
+ for (i=0; i<4; i++)
+ record->trainerId[i] = 0x00;
+ record->sbr_field_e = 0;
+ record->sbr_field_10 = 0;
+ record->sbr_field_11 = 0;
+ record->sbr_field_1_0 = 0;
+ record->gender = 0;
+ record->sbr_field_1_5 = 0;
+ record->sbr_field_1_6 = 0;
+ for (i=0; i<16; i++) {
+ record->decorations[i] = 0;
+ record->sbr_field_22[i] = 0;
+ }
+ for (i=0; i<6; i++) {
+ for (j=0; j<4; j++) {
+ record->partyMoves[i * 4 + j] = 0;
+ }
+ record->partyPersonality[i] = 0;
+ record->partyEVs[i] = 0;
+ record->partySpecies[i] = 0;
+ record->partyHeldItems[i] = 0;
+ record->partyLevels[i] = 0;
+ }
+}