diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-09-03 14:35:01 -0400 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-09-05 20:48:48 -0500 |
commit | a9918c3b898bd181cdb6db6d382b78d8122dfadb (patch) | |
tree | bc6c00c58a60e87898948094a478da37689e5c16 /src | |
parent | cb0fa2fdc357ad2b016ee53f9bdea5297ed9d4d1 (diff) |
Partial refactor of TryWriteTrainerHill_r
Diffstat (limited to 'src')
-rw-r--r-- | src/data/battle_frontier/trainer_hill.h | 20 | ||||
-rwxr-xr-x | src/ereader_helpers.c | 32 | ||||
-rw-r--r-- | src/trainer_hill.c | 36 |
3 files changed, 19 insertions, 69 deletions
diff --git a/src/data/battle_frontier/trainer_hill.h b/src/data/battle_frontier/trainer_hill.h index 64d216e4b..32cb0f4b1 100644 --- a/src/data/battle_frontier/trainer_hill.h +++ b/src/data/battle_frontier/trainer_hill.h @@ -5,10 +5,7 @@ static const struct TrHillTag sDataTagNormal = .unkField_0 = 8, .unused1 = 2, .unkField_2 = 4, - .unused3 = 0, - .unused4 = 5, - .unused5 = 30, - .unused6 = 5, + .checksum = 0x00051E05, .floors = { [0] = @@ -1218,10 +1215,7 @@ static const struct TrHillTag sDataTagVariety = .unkField_0 = 8, .unused1 = 1, .unkField_2 = 4, - .unused3 = 0, - .unused4 = 21, - .unused5 = 76, - .unused6 = 5, + .checksum = 0x00054C15, .floors = { [0] = @@ -2438,10 +2432,7 @@ static const struct TrHillTag sDataTagUnique = .unkField_0 = 8, .unused1 = 3, .unkField_2 = 4, - .unused3 = 0, - .unused4 = 243, - .unused5 = 82, - .unused6 = 6, + .checksum = 0x000652F3, .floors = { [0] = @@ -3643,10 +3634,7 @@ static const struct TrHillTag sDataTagExpert = .unkField_0 = 8, .unused1 = 1, .unkField_2 = 4, - .unused3 = 0, - .unused4 = 63, - .unused5 = 31, - .unused6 = 6, + .checksum = 0x00061F3F, .floors = { [0] = diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c index 4665a04f0..e0e51a48e 100755 --- a/src/ereader_helpers.c +++ b/src/ereader_helpers.c @@ -696,7 +696,7 @@ static u8 sub_81D38D4(void) return (gSaveBlock1Ptr->trainerHill.unused + 1) % 256; } -static bool32 Struct_Unk81D38FC_ValidateChecksum(struct Unk81D38FC *arg0) +static bool32 Struct_EReaderTrainerHillTrainer_ValidateChecksum(struct EReaderTrainerHillTrainer *arg0) { int checksum = CalcByteArraySum((u8 *)arg0, 0x270); if (checksum != arg0->checksum) @@ -715,11 +715,11 @@ bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer) for (i = 0; i < var0; i++) { - if (!Struct_Unk81D38FC_ValidateChecksum(&buffer->unk_8[i])) + if (!Struct_EReaderTrainerHillTrainer_ValidateChecksum(&buffer->unk_8[i])) return FALSE; } - checksum = CalcByteArraySum((u8 *)buffer->unk_8, var0 * sizeof(struct Unk81D38FC)); + checksum = CalcByteArraySum((u8 *)buffer->unk_8, var0 * sizeof(struct EReaderTrainerHillTrainer)); if (checksum != buffer->checksum) return FALSE; @@ -740,7 +740,7 @@ static bool32 TrainerHill_VerifyChecksum(struct EReaderTrainerHillSet *buffer) return TRUE; } -static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *ttdata, struct Unk81D3998 *buffer2) +static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *ttdata, struct TrHillTag *buffer2) { int i; @@ -748,33 +748,31 @@ static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *ttdata, struct AGB_ASSERT_EX(ttdata->id == 0, "cereader_tool.c", 452); memset(buffer2, 0, 0x1000); - buffer2->unk_000 = ttdata->count; - buffer2->unk_001 = sub_81D38D4(); - buffer2->unk_002 = (ttdata->count + 1) / 2; + buffer2->unkField_0 = ttdata->count; + buffer2->unused1 = sub_81D38D4(); + buffer2->unkField_2 = (ttdata->count + 1) / 2; for (i = 0; i < ttdata->count; i++) { if (!(i & 1)) { - buffer2->unk_008[i / 2].unk_000[0] = ttdata->unk_8[i].unk0; - memcpy(buffer2->unk_008[i / 2].unk_294, ttdata->unk_8[i].unk14C, 0x124); - memcpy(buffer2->unk_008[i / 2].unk_004, ttdata->unk_8[i].unk4, 0x148); + buffer2->floors[i / 2].unk0 = ttdata->unk_8[i].unk0; + memcpy(buffer2->floors[i / 2].data, ttdata->unk_8[i].unk14C, 0x124); + buffer2->floors[i / 2].trainers[0] = ttdata->unk_8[i].unk4; } else { - buffer2->unk_008[i / 2].unk_000[1] = ttdata->unk_8[i].unk0; - memcpy(buffer2->unk_008[i / 2].unk_14C, ttdata->unk_8[i].unk4, 0x148); + buffer2->floors[i / 2].unk1 = ttdata->unk_8[i].unk0; + buffer2->floors[i / 2].trainers[1] = ttdata->unk_8[i].unk4; } } if (i & 1) { - u8 * dest = buffer2->unk_008[i / 2].unk_14C; - const struct TrainerHillTrainer * src = sTrainerHillTrainerTemplates_JP; - memcpy(dest, &src[i / 2], 0x148); + buffer2->floors[i / 2].trainers[1] = sTrainerHillTrainerTemplates_JP[i / 2]; } - buffer2->checksum = CalcByteArraySum((u8 *)buffer2->unk_008, sizeof(struct Unk81D3998) - offsetof(struct Unk81D3998, unk_008)); + buffer2->checksum = CalcByteArraySum((u8 *)buffer2->floors, sizeof(buffer2->floors)); if (TryWriteSpecialSaveSection(SECTOR_ID_TRAINER_HILL, (u8 *)buffer2) != 1) return FALSE; @@ -783,7 +781,7 @@ static bool32 TryWriteTrainerHill_r(struct EReaderTrainerHillSet *ttdata, struct bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0) { - struct Unk81D3998 *var0 = AllocZeroed(0x1000); + void *var0 = AllocZeroed(0x1000); bool32 result = TryWriteTrainerHill_r(arg0, var0); Free(var0); return result; diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 7eff0d394..0de8133fe 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -40,42 +40,6 @@ #define HILL_MAX_TIME 215999 // 60 * 60 * 60 - 1 -struct TrHillRoomTrainers -{ - u8 name[2][HILL_TRAINER_NAME_LENGTH]; - u8 facilityClass[2]; -}; - -struct TrHillFloor -{ - u8 unk0; - u8 unk1; - struct TrainerHillTrainer trainers[2]; - u8 data[0x100]; - u16 unk3A0[16]; - u8 coords[2]; // x first 4 bits, y last 4 bits - u8 direction; // array of 4 bits for each trainer - u8 range; // array of 4 bits for each trainer -}; - -struct TrHillTag -{ - u8 unkField_0; - u8 unused1; - u8 unkField_2; - u8 unused3; - u8 unused4; - u8 unused5; - u8 unused6; - struct TrHillFloor floors[4]; -}; - -struct TrHillStruct2 -{ - u8 floorId; - struct TrHillTag tag; -}; - // EWRAM static EWRAM_DATA struct TrHillStruct2 *sHillData = NULL; static EWRAM_DATA struct TrHillRoomTrainers *sRoomTrainers = NULL; |