summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-05-09 09:26:21 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-05-09 09:26:21 -0400
commitd850ef92c66080733746a4a8253d384603e064f5 (patch)
tree3423ad6d586ee1a495805feb6fe40db782673621
parent0035d25cfc4c2b9a0d9d427ccfad322037ef8464 (diff)
decomp unk_810C3A4 as part of vs_seeker
-rw-r--r--asm/unk_810C3A4.s389
-rw-r--r--include/global.h8
-rw-r--r--include/map_obj_80688E4.h1
-rw-r--r--include/map_obj_lock.h1
-rw-r--r--include/unk_810c3a4.h19
-rw-r--r--ld_script.txt1
-rw-r--r--src/vs_seeker.c230
7 files changed, 256 insertions, 393 deletions
diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s
deleted file mode 100644
index cabaac727..000000000
--- a/asm/unk_810C3A4.s
+++ /dev/null
@@ -1,389 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810C3A4
-sub_810C3A4: @ 810C3A4
- push {lr}
- ldr r0, _0810C3B4 @ =sub_810C3B8
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810C3B4: .4byte sub_810C3B8
- thumb_func_end sub_810C3A4
-
- thumb_func_start sub_810C3B8
-sub_810C3B8: @ 810C3B8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0810C43C @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810C3E2
- bl walkrun_is_standing_still
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0810C3E2
- bl sub_805C270
- strh r4, [r5, 0x8]
-_0810C3E2:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0810C41C
- movs r4, 0
- ldr r7, _0810C440 @ =gMapObjects
-_0810C3EE:
- adds r0, r4, 0
- bl sub_810CF04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C412
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0810C436
- adds r0, r1, 0
- bl FreezeMapObject
-_0810C412:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0810C3EE
-_0810C41C:
- movs r0, 0x1
- strh r0, [r5, 0xA]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810C436
- adds r0, r6, 0
- bl DestroyTask
- bl sub_805C780
- bl EnableBothScriptContexts
-_0810C436:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C43C: .4byte gTasks
-_0810C440: .4byte gMapObjects
- thumb_func_end sub_810C3B8
-
- thumb_func_start sub_810C444
-sub_810C444: @ 810C444
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r0, _0810C4E0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 4
- adds r1, r0
- mov r8, r1
- movs r7, 0
- ldr r0, _0810C4E4 @ =gMapHeader
- ldr r1, [r0, 0x4]
- adds r2, r0, 0
- ldrb r1, [r1]
- cmp r7, r1
- bcs _0810C4D2
-_0810C466:
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 3
- mov r1, r8
- adds r5, r0, r1
- ldrh r0, [r5, 0xC]
- cmp r0, 0x1
- beq _0810C47A
- cmp r0, 0x3
- bne _0810C4C4
-_0810C47A:
- ldrb r0, [r5, 0x9]
- subs r0, 0x4D
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0810C4C4
- bl sub_810CF54
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r5]
- ldr r1, _0810C4E0 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- mov r0, sp
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, _0810C4E8 @ =gMapObjects
- adds r4, r1, r2
- bl sub_810CF04
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C4C0
- adds r0, r4, 0
- adds r1, r6, 0
- bl npc_set_running_behaviour_etc
-_0810C4C0:
- strb r6, [r5, 0x9]
- ldr r2, _0810C4E4 @ =gMapHeader
-_0810C4C4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r2, 0x4]
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0810C466
-_0810C4D2:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C4E0: .4byte gSaveBlock1Ptr
-_0810C4E4: .4byte gMapHeader
-_0810C4E8: .4byte gMapObjects
- thumb_func_end sub_810C444
-
- thumb_func_start sub_810C4EC
-sub_810C4EC: @ 810C4EC
- push {r4-r7,lr}
- movs r0, 0xB5
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C516
- ldr r0, _0810C568 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r2, 0xC7
- lsls r2, 3
- adds r1, r0, r2
- ldrh r2, [r1]
- ldrb r0, [r1]
- cmp r0, 0x63
- bhi _0810C516
- adds r0, r2, 0x1
- strh r0, [r1]
-_0810C516:
- ldr r7, _0810C56C @ =0x00000801
- adds r0, r7, 0
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810C570
- ldr r6, _0810C568 @ =gSaveBlock1Ptr
- ldr r0, [r6]
- movs r5, 0xC7
- lsls r5, 3
- adds r3, r0, r5
- ldrh r2, [r3]
- lsrs r1, r2, 8
- movs r4, 0xFF
- cmp r1, 0x63
- bhi _0810C548
- adds r1, 0x1
- lsls r1, 24
- movs r0, 0xFF
- ands r0, r2
- lsrs r1, 16
- orrs r0, r1
- strh r0, [r3]
-_0810C548:
- ldr r0, [r6]
- adds r0, r5
- ldrh r0, [r0]
- lsrs r0, 8
- ands r0, r4
- cmp r0, 0x64
- bne _0810C570
- adds r0, r7, 0
- bl FlagClear
- bl sub_810C640
- bl sub_810D0D0
- movs r0, 0x1
- b _0810C572
- .align 2, 0
-_0810C568: .4byte gSaveBlock1Ptr
-_0810C56C: .4byte 0x00000801
-_0810C570:
- movs r0, 0
-_0810C572:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810C4EC
-
- thumb_func_start sub_810C578
-sub_810C578: @ 810C578
- push {lr}
- ldr r0, _0810C590 @ =0x00000801
- bl FlagClear
- bl sub_810C640
- bl sub_810D0D0
- bl sub_810C594
- pop {r0}
- bx r0
- .align 2, 0
-_0810C590: .4byte 0x00000801
- thumb_func_end sub_810C578
-
- thumb_func_start sub_810C594
-sub_810C594: @ 810C594
- push {r4-r7,lr}
- movs r5, 0
- movs r6, 0
-_0810C59A:
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- ldr r1, _0810C5FC @ =gMapObjects
- adds r4, r0, r1
- ldrb r0, [r4, 0x6]
- subs r0, 0x4D
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0810C5EA
- bl sub_810CF54
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _0810C5EA
- ldr r2, _0810C600 @ =gSprites
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r7, 0x2E
- ldrsh r0, [r1, r7]
- cmp r0, r5
- bne _0810C5EA
- strh r6, [r1, 0x24]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x26]
- adds r0, r4, 0
- adds r1, r3, 0
- bl npc_set_running_behaviour_etc
-_0810C5EA:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _0810C59A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5FC: .4byte gMapObjects
-_0810C600: .4byte gSprites
- thumb_func_end sub_810C594
-
- thumb_func_start sub_810C604
-sub_810C604: @ 810C604
- ldr r0, _0810C61C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0xC7
- lsls r0, 3
- adds r1, r0
- ldrh r2, [r1]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810C61C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C604
-
- thumb_func_start sub_810C620
-sub_810C620: @ 810C620
- ldr r0, _0810C63C @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0xC7
- lsls r0, 3
- adds r2, r0
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- movs r1, 0x64
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0810C63C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C620
-
- thumb_func_start sub_810C640
-sub_810C640: @ 810C640
- ldr r0, _0810C650 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 3
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0810C650: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C640
-
- thumb_func_start sub_810C654
-sub_810C654: @ 810C654
- ldr r0, _0810C66C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0xC7
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- movs r3, 0xC8
- lsls r3, 7
- adds r2, r3, 0
- orrs r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810C66C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_810C654
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/include/global.h b/include/global.h
index 60185af00..461402f1f 100644
--- a/include/global.h
+++ b/include/global.h
@@ -692,6 +692,12 @@ struct TrainerTowerLog
u8 unkA_6:2;
};
+struct TrainerRematchState
+{
+ u16 stepCounter;
+ u8 rematches[100];
+};
+
struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
@@ -719,7 +725,7 @@ struct SaveBlock1
/*0x05F8*/ u8 seen1[DEX_FLAGS_NO];
/*0x062C*/ u16 berryBlenderRecords[3]; // unused
/*0x0632*/ u8 field_632[6]; // unused?
- /*0x0638*/ u8 trainerRematchStepCounter;
+ /*0x0638*/ u16 trainerRematchStepCounter;
/*0x063A*/ u8 ALIGNED(2) trainerRematches[100];
/*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
/*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
diff --git a/include/map_obj_80688E4.h b/include/map_obj_80688E4.h
index 9ab76646d..de871fd64 100644
--- a/include/map_obj_80688E4.h
+++ b/include/map_obj_80688E4.h
@@ -4,5 +4,6 @@
#include "global.h"
void player_bitmagic(void);
+void FreezeMapObject(struct MapObject *);
#endif //GUARD_MAP_OBJ_80688E4_H
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
index 2927ca26d..0d130973b 100644
--- a/include/map_obj_lock.h
+++ b/include/map_obj_lock.h
@@ -10,5 +10,6 @@ void LockSelectedMapObject(void);
void sub_8098630(void);
bool8 sub_8098734(void);
void sub_80696C0(void);
+bool8 walkrun_is_standing_still(void);
#endif // GUARD_MAP_OBJ_LOCK_H
diff --git a/include/unk_810c3a4.h b/include/unk_810c3a4.h
index 3f85ab00f..11a91b5ef 100644
--- a/include/unk_810c3a4.h
+++ b/include/unk_810c3a4.h
@@ -1,6 +1,25 @@
#ifndef GUARD_UNK_810C3A4_H
#define GUARD_UNK_810C3A4_H
+#define GET_VS_SEEKER_COUNTER_0() (gSaveBlock1Ptr->trainerRematch.stepCounter & 0xFF)
+#define GET_VS_SEEKER_COUNTER_1() (gSaveBlock1Ptr->trainerRematch.stepCounter >> 8)
+#define SET_VS_SEEKER_COUNTER_0(x) ({\
+ gSaveBlock1Ptr->trainerRematch.stepCounter &= 0xFF00;\
+ gSaveBlock1Ptr->trainerRematch.stepCounter |= (x);\
+})
+#define SET_VS_SEEKER_COUNTER_1(x) ({\
+ gSaveBlock1Ptr->trainerRematch.stepCounter &= 0x00FF;\
+ gSaveBlock1Ptr->trainerRematch.stepCounter |= ((x) << 8);\
+})
+#define INC_VS_SEEKER_COUNTER_0() ({\
+ u8 x = GET_VS_SEEKER_COUNTER_0();\
+ if (x < 100) gSaveBlock1Ptr->trainerRematch.stepCounter++;\
+})
+#define INC_VS_SEEKER_COUNTER_1() ({\
+ u8 x = GET_VS_SEEKER_COUNTER_1();\
+ if (x < 100) {x++; SET_VS_SEEKER_COUNTER_1(x);}\
+})
+
void sub_810C604(void);
void sub_810C640(void);
diff --git a/ld_script.txt b/ld_script.txt
index 2f9804b4a..bf5ce7fd2 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -213,7 +213,6 @@ SECTIONS {
asm/save_location.o(.text);
src/bag.o(.text);
src/trainer_pokemon_sprites.o(.text);
- asm/unk_810C3A4.o(.text);
src/vs_seeker.o(.text);
asm/item_pc.o(.text);
asm/mailbox_pc.o(.text);
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 9cf6a6e04..bd5b9c7ea 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -19,6 +19,7 @@
#include "random.h"
#include "field_map_obj.h"
#include "field_player_avatar.h"
+#include "map_obj_80688E4.h"
#include "map_obj_8097404.h"
#include "unk_810c3a4.h"
#include "constants/movement_commands.h"
@@ -70,6 +71,8 @@ extern u8 gSelectedEventObject;
// static declarations
static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL;
+static void sub_810C3B8(u8 taskId);
+static void sub_810C594(void);
static void Task_VsSeeker_1(u8 taskId);
static void Task_VsSeeker_2(u8 taskId);
static void GatherNearbyTrainerInfo(void);
@@ -565,6 +568,229 @@ static const u8 gUnknown_8453F67[] = { 0x08, 0x08, 0x07, 0x09, 0x0a };
// text
+
+
+void sub_810C3A4(void)
+{
+ CreateTask(sub_810C3B8, 80);
+}
+
+static void sub_810C3B8(u8 taskId)
+{
+ struct Task * task = &gTasks[taskId];
+ u8 i;
+
+ if (task->data[0] == 0 && walkrun_is_standing_still() == TRUE)
+ {
+ sub_805C270();
+ task->data[0] = 1;
+ }
+
+ if (task->data[1] == 0)
+ {
+ for (i = 0; i < MAP_OBJECTS_COUNT; i++)
+ {
+ if (sub_810CF04(i) == TRUE)
+ {
+ if (gMapObjects[i].mapobj_bit_1)
+ return;
+ FreezeMapObject(&gMapObjects[i]);
+ }
+ }
+ }
+
+ task->data[1] = 1;
+ if (task->data[0] != 0)
+ {
+ DestroyTask(taskId);
+ sub_805C780();
+ EnableBothScriptContexts();
+ }
+}
+
+void sub_810C444(void)
+{
+ struct MapObjectTemplate * templates = gSaveBlock1Ptr->mapObjectTemplates;
+ u8 i;
+ u8 r6;
+ u8 sp0;
+ struct MapObject * mapObject;
+
+ for (i = 0; i < gMapHeader.events->mapObjectCount; i++)
+ {
+ if ((templates[i].unkC == 1 || templates[i].unkC == 3) && (templates[i].movementType == 0x4D || templates[i].movementType == 0x4E || templates[i].movementType == 0x4F))
+ {
+ r6 = sub_810CF54();
+ TryGetFieldObjectIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
+ mapObject = &gMapObjects[sp0];
+ if (sub_810CF04(sp0) == TRUE)
+ {
+ npc_set_running_behaviour_etc(mapObject, r6);
+ }
+ templates[i].movementType = r6;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+bool8 sub_810C4EC(void)
+{
+ if (CheckBagHasItem(ITEM_VS_SEEKER, 1) == TRUE)
+ {
+ if ((gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF) < 100)
+ gSaveBlock1Ptr->trainerRematchStepCounter++;
+ }
+
+ if (FlagGet(0x801) == TRUE)
+ {
+ u16 x;
+ do {
+ x = (gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF;
+ } while (0);
+ if (x < 100)
+ {
+ x++;
+ gSaveBlock1Ptr->trainerRematchStepCounter = ((u16)(x << 8)) | (gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF);
+ }
+ do {
+ x = (gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF;
+ } while (0);
+ if (x == 100)
+ {
+ FlagClear(0x801);
+ sub_810C640();
+ sub_810D0D0();
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+#else
+NAKED
+bool8 sub_810C4EC(void)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmovs r0, 0xB5\n"
+ "\tlsls r0, 1\n"
+ "\tmovs r1, 0x1\n"
+ "\tbl CheckBagHasItem\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _0810C516\n"
+ "\tldr r0, _0810C568 @ =gSaveBlock1Ptr\n"
+ "\tldr r0, [r0]\n"
+ "\tmovs r2, 0xC7\n"
+ "\tlsls r2, 3\n"
+ "\tadds r1, r0, r2\n"
+ "\tldrh r2, [r1]\n"
+ "\tldrb r0, [r1]\n"
+ "\tcmp r0, 0x63\n"
+ "\tbhi _0810C516\n"
+ "\tadds r0, r2, 0x1\n"
+ "\tstrh r0, [r1]\n"
+ "_0810C516:\n"
+ "\tldr r7, _0810C56C @ =0x00000801\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl FlagGet\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _0810C570\n"
+ "\tldr r6, _0810C568 @ =gSaveBlock1Ptr\n"
+ "\tldr r0, [r6]\n"
+ "\tmovs r5, 0xC7\n"
+ "\tlsls r5, 3\n"
+ "\tadds r3, r0, r5\n"
+ "\tldrh r2, [r3]\n"
+ "\tlsrs r1, r2, 8\n"
+ "\tmovs r4, 0xFF\n"
+ "\tcmp r1, 0x63\n"
+ "\tbhi _0810C548\n"
+ "\tadds r1, 0x1\n"
+ "\tlsls r1, 24\n"
+ "\tmovs r0, 0xFF\n"
+ "\tands r0, r2\n"
+ "\tlsrs r1, 16\n"
+ "\torrs r0, r1\n"
+ "\tstrh r0, [r3]\n"
+ "_0810C548:\n"
+ "\tldr r0, [r6]\n"
+ "\tadds r0, r5\n"
+ "\tldrh r0, [r0]\n"
+ "\tlsrs r0, 8\n"
+ "\tands r0, r4\n"
+ "\tcmp r0, 0x64\n"
+ "\tbne _0810C570\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl FlagClear\n"
+ "\tbl sub_810C640\n"
+ "\tbl sub_810D0D0\n"
+ "\tmovs r0, 0x1\n"
+ "\tb _0810C572\n"
+ "\t.align 2, 0\n"
+ "_0810C568: .4byte gSaveBlock1Ptr\n"
+ "_0810C56C: .4byte 0x00000801\n"
+ "_0810C570:\n"
+ "\tmovs r0, 0\n"
+ "_0810C572:\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1");
+}
+#endif
+
+void sub_810C578(void)
+{
+ FlagClear(0x801);
+ sub_810C640();
+ sub_810D0D0();
+ sub_810C594();
+}
+
+static void sub_810C594(void)
+{
+ u8 i;
+
+ for (i = 0; i < MAP_OBJECTS_COUNT; i++)
+ {
+ struct MapObject * mapObject = &gMapObjects[i];
+ if (mapObject->animPattern == 0x4D || mapObject->animPattern == 0x4E || mapObject->animPattern == 0x4F)
+ {
+ u8 r3 = sub_810CF54();
+ if (mapObject->active && gSprites[mapObject->spriteId].data[0] == i)
+ {
+ gSprites[mapObject->spriteId].pos2.x = 0;
+ gSprites[mapObject->spriteId].pos2.y = 0;
+ npc_set_running_behaviour_etc(mapObject, r3);
+ }
+ }
+ }
+}
+
+void sub_810C604(void)
+{
+ gSaveBlock1Ptr->trainerRematchStepCounter &= 0xFF00;
+}
+
+void sub_810C620(void)
+{
+ gSaveBlock1Ptr->trainerRematchStepCounter &= 0xFF00;
+ gSaveBlock1Ptr->trainerRematchStepCounter |= 100;
+}
+
+void sub_810C640(void)
+{
+ gSaveBlock1Ptr->trainerRematchStepCounter &= 0x00FF;
+}
+
+void sub_810C654(void)
+{
+ gSaveBlock1Ptr->trainerRematchStepCounter &= 0x00FF;
+ gSaveBlock1Ptr->trainerRematchStepCounter |= (100 << 8);
+}
+
void Task_VsSeeker_0(u8 taskId)
{
u8 i;
@@ -1225,7 +1451,7 @@ static u16 GetTrainerFlagFromScript(const u8 *script)
* because the ARM processor requires shorts to be 16-bit
* aligned, this function needs to perform explicit bitwise
* operations to get the correct flag.
- *
+ *
* 5c XX YY ZZ ...
* -- --
*/
@@ -1360,7 +1586,7 @@ static void StartAllRespondantIdleMovements(void)
u8 dummy = 0;
s32 i;
s32 j;
-
+
for (i = 0; i < sVsSeeker->numRematchableTrainers; i++)
{
for (j = 0; sVsSeeker->trainerInfo[j].localId != 0xFF; j++)