Document battle tower battle salon and multi corridor (#825)

This commit is contained in:
Viperio 2025-12-05 22:21:17 +01:00 committed by GitHub
parent 40f5257781
commit 2de495199a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
62 changed files with 974 additions and 620 deletions

View File

@ -31,6 +31,7 @@
#include "generated/trainer_score_events.h"
#include "generated/trainers.h"
#include "constants/animation_tags.h"
#include "constants/battle_tower.h"
#include "constants/boat_cutscene.h"
#include "constants/colors.h"
#include "constants/elevator_dirs.h"
@ -690,11 +691,11 @@
.short \arg2
.endm
.macro ScrCmd_06B arg0, arg1, arg2
.macro MoveCamera x, y, z
.short 107
.short \arg0
.short \arg1
.short \arg2
.short \x
.short \y
.short \z
.endm
.macro ScrCmd_06C arg0, arg1
@ -2743,12 +2744,12 @@
.short \destVar
.endm
.macro ScrCmd_1DE arg0, arg1, arg2, arg3
.macro GetBattleTowerPartnerSpeciesAndMove partnerID, monID, destVar1, destVar2
.short 478
.short \arg0
.short \arg1
.short \arg2
.short \arg3
.short \partnerID
.short \monID
.short \destVar1
.short \destVar2
.endm
.macro ScrCmd_1DF arg0
@ -2886,7 +2887,7 @@
.short \partySlot
.endm
.macro ScrCmd_1F8
.macro WaitForTransition
.short 504
.endm

View File

@ -23,7 +23,7 @@ BATTLE_TOWER_FUNCTION_UNK_37
BATTLE_TOWER_FUNCTION_UNK_38
BATTLE_TOWER_FUNCTION_UNK_39
BATTLE_TOWER_FUNCTION_UNK_40
BATTLE_TOWER_FUNCTION_UNK_41
BATTLE_TOWER_FUNCTION_GET_OPPONENT_OBJECT_ID
BATTLE_TOWER_FUNCTION_UNK_42
BATTLE_TOWER_FUNCTION_GET_CHALLENGE_MODE
BATTLE_TOWER_FUNCTION_UNK_44
@ -31,12 +31,12 @@ BATTLE_TOWER_FUNCTION_UNK_45
BATTLE_TOWER_FUNCTION_UNK_47 = 47
BATTLE_TOWER_FUNCTION_UNK_48
BATTLE_TOWER_FUNCTION_UNK_49
BATTLE_TOWER_FUNCTION_UNK_50
BATTLE_TOWER_FUNCTION_UNK_51
BATTLE_TOWER_FUNCTION_SET_PARTNER_ID
BATTLE_TOWER_FUNCTION_GET_PARTNER_ID
BATTLE_TOWER_FUNCTION_UNK_52
BATTLE_TOWER_FUNCTION_GET_SLOT_INDEX
BATTLE_TOWER_FUNCTION_UNK_54
BATTLE_TOWER_FUNCTION_UNK_55
BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM
BATTLE_TOWER_FUNCTION_UNK_56
BATTLE_TOWER_FUNCTION_UNK_57
BATTLE_TOWER_FUNCTION_UNK_58

View File

@ -0,0 +1,315 @@
FRONTIER_TRAINER_YOUNGSTER_JIM
FRONTIER_TRAINER_YOUNGSTER_ERROLL
FRONTIER_TRAINER_YOUNGSTER_CASIMIR
FRONTIER_TRAINER_LASS_CAMERON
FRONTIER_TRAINER_LASS_PEACHES
FRONTIER_TRAINER_LASS_YASMIN
FRONTIER_TRAINER_SCHOOL_KID_FOSTER
FRONTIER_TRAINER_SCHOOL_KID_KEN
FRONTIER_TRAINER_SCHOOL_KID_OWEN
FRONTIER_TRAINER_SCHOOL_KID_MARCY
FRONTIER_TRAINER_SCHOOL_KID_SHELLY
FRONTIER_TRAINER_SCHOOL_KID_ASPEN
FRONTIER_TRAINER_RICH_BOY_MATT
FRONTIER_TRAINER_RICH_BOY_ALVAN
FRONTIER_TRAINER_RICH_BOY_ASA
FRONTIER_TRAINER_LADY_ISABEL
FRONTIER_TRAINER_LADY_NICHOLE
FRONTIER_TRAINER_LADY_JUANITA
FRONTIER_TRAINER_CAMPER_BERNARD
FRONTIER_TRAINER_CAMPER_HERBERT
FRONTIER_TRAINER_CAMPER_COLBERT
FRONTIER_TRAINER_PICNICKER_MAGGIE
FRONTIER_TRAINER_PICNICKER_MELANIE
FRONTIER_TRAINER_PICNICKER_ANN
FRONTIER_TRAINER_TUBER_MANFORD
FRONTIER_TRAINER_TUBER_HANK
FRONTIER_TRAINER_TUBER_PERCY
FRONTIER_TRAINER_TUBER_DAKOTA
FRONTIER_TRAINER_TUBER_JENNY
FRONTIER_TRAINER_TUBER_TIA
FRONTIER_TRAINER_GUITARIST_MALCOLM
FRONTIER_TRAINER_GUITARIST_TAD
FRONTIER_TRAINER_GUITARIST_CONCORD
FRONTIER_TRAINER_IDOL_PENNY
FRONTIER_TRAINER_IDOL_LANA
FRONTIER_TRAINER_IDOL_CRIMSON
FRONTIER_TRAINER_POKEFAN_EWAN
FRONTIER_TRAINER_POKEFAN_KANE
FRONTIER_TRAINER_POKEFAN_THEO
FRONTIER_TRAINER_POKEFAN_ALEXIA
FRONTIER_TRAINER_POKEFAN_LUNA
FRONTIER_TRAINER_POKEFAN_CELENE
FRONTIER_TRAINER_WAITER_CYAN
FRONTIER_TRAINER_WAITER_INDIGO
FRONTIER_TRAINER_WAITER_ORIN
FRONTIER_TRAINER_WAITRESS_ASHLEY
FRONTIER_TRAINER_WAITRESS_NOELLE
FRONTIER_TRAINER_WAITRESS_KANDACE
FRONTIER_TRAINER_BUG_CATCHER_FLOYD
FRONTIER_TRAINER_BUG_CATCHER_HOFFMAN
FRONTIER_TRAINER_BUG_CATCHER_AMADEUS
FRONTIER_TRAINER_NINJA_BOY_SHIA
FRONTIER_TRAINER_NINJA_BOY_VINCENT
FRONTIER_TRAINER_NINJA_BOY_PIERRE
FRONTIER_TRAINER_POKE_KID_ALICE
FRONTIER_TRAINER_POKE_KID_ANITA
FRONTIER_TRAINER_POKE_KID_ALLISON
FRONTIER_TRAINER_FISHERMAN_KIEFER
FRONTIER_TRAINER_FISHERMAN_BASIL
FRONTIER_TRAINER_RUIN_MANIAC_HENRIK
FRONTIER_TRAINER_RUIN_MANIAC_AUBRY
FRONTIER_TRAINER_COLLECTOR_UPTON
FRONTIER_TRAINER_COLLECTOR_EMIL
FRONTIER_TRAINER_PARASOL_LADY_BRIDGET
FRONTIER_TRAINER_PARASOL_LADY_BLANCHE
FRONTIER_TRAINER_PARASOL_LADY_COLETTE
FRONTIER_TRAINER_BEAUTY_TIFFANY
FRONTIER_TRAINER_BEAUTY_BRITNEY
FRONTIER_TRAINER_BEAUTY_HARMONY
FRONTIER_TRAINER_AROMA_LADY_LUCY
FRONTIER_TRAINER_AROMA_LADY_JACKIE
FRONTIER_TRAINER_AROMA_LADY_KARA
FRONTIER_TRAINER_GUITARIST_BERNIE
FRONTIER_TRAINER_GUITARIST_CURTIS
FRONTIER_TRAINER_BIRD_KEEPER_NANCY
FRONTIER_TRAINER_BIRD_KEEPER_TRINITY
FRONTIER_TRAINER_BIRD_KEEPER_SHAWNA
FRONTIER_TRAINER_SAILOR_LAYTON
FRONTIER_TRAINER_SAILOR_GODWIN
FRONTIER_TRAINER_HIKER_EVERETT
FRONTIER_TRAINER_HIKER_RAIDEN
FRONTIER_TRAINER_IDOL_ADA
FRONTIER_TRAINER_IDOL_ANNIE
FRONTIER_TRAINER_IDOL_BASIA
FRONTIER_TRAINER_JOGGER_STEVE
FRONTIER_TRAINER_JOGGER_DAVE
FRONTIER_TRAINER_WORKER_SHANE
FRONTIER_TRAINER_WORKER_BENJI
FRONTIER_TRAINER_RANCHER_PIERCE
FRONTIER_TRAINER_RANCHER_ETIENNE
FRONTIER_TRAINER_RANCHER_LEON
FRONTIER_TRAINER_COWGIRL_DORIS
FRONTIER_TRAINER_COWGIRL_PAISLEY
FRONTIER_TRAINER_COWGIRL_LESLIE
FRONTIER_TRAINER_CAMERAMAN_HUDSON
FRONTIER_TRAINER_CAMERAMAN_XENON
FRONTIER_TRAINER_CAMERAMAN_AMLETH
FRONTIER_TRAINER_REPORTER_DOT
FRONTIER_TRAINER_REPORTER_MARBLE
FRONTIER_TRAINER_REPORTER_GINGHAM
FRONTIER_TRAINER_CYCLIST_GASPAR
FRONTIER_TRAINER_CYCLIST_IGNATIO
FRONTIER_TRAINER_CYCLIST_KAYLENE
FRONTIER_TRAINER_CYCLIST_KAYA
FRONTIER_TRAINER_BLACK_BELT_CLEMENT
FRONTIER_TRAINER_BLACK_BELT_MASON
FRONTIER_TRAINER_BATTLE_GIRL_KODI
FRONTIER_TRAINER_BATTLE_GIRL_AILEEN
FRONTIER_TRAINER_BLACK_BELT_JERICHO
FRONTIER_TRAINER_BLACK_BELT_HARRIS
FRONTIER_TRAINER_BLACK_BELT_SOREN
FRONTIER_TRAINER_BATTLE_GIRL_TRINA
FRONTIER_TRAINER_BATTLE_GIRL_ALTA
FRONTIER_TRAINER_BATTLE_GIRL_INGRID
FRONTIER_TRAINER_VETERAN_BECK
FRONTIER_TRAINER_VETERAN_ERIC
FRONTIER_TRAINER_VETERAN_PADGETT
FRONTIER_TRAINER_SOCIALITE_BARBARA
FRONTIER_TRAINER_SOCIALITE_ISABEL
FRONTIER_TRAINER_SOCIALITE_CARMEN
FRONTIER_TRAINER_PSYCHIC_ALPHA
FRONTIER_TRAINER_PSYCHIC_BETA
FRONTIER_TRAINER_PSYCHIC_ESSIE
FRONTIER_TRAINER_PSYCHIC_AMELIA
FRONTIER_TRAINER_PSYCHIC_CELINE
FRONTIER_TRAINER_PSYCHIC_JILLIAN
FRONTIER_TRAINER_BREEDER_HOWARD
FRONTIER_TRAINER_BREEDER_DERRELL
FRONTIER_TRAINER_BREEDER_BALDWIN
FRONTIER_TRAINER_BREEDER_ADRIANA
FRONTIER_TRAINER_BREEDER_SONYA
FRONTIER_TRAINER_BREEDER_TATYANA
FRONTIER_TRAINER_GENTLEMAN_ZANTE
FRONTIER_TRAINER_GENTLEMAN_GILIAM
FRONTIER_TRAINER_ROUGHNECK_RODNEY
FRONTIER_TRAINER_ROUGHNECK_RAINIER
FRONTIER_TRAINER_SCIENTIST_JEAN
FRONTIER_TRAINER_SCIENTIST_BRAD
FRONTIER_TRAINER_CLOWN_FRANCIS
FRONTIER_TRAINER_CLOWN_PRESCOT
FRONTIER_TRAINER_ACE_TRAINER_YARDLEY
FRONTIER_TRAINER_ACE_TRAINER_STAVROS
FRONTIER_TRAINER_ACE_TRAINER_ZANE
FRONTIER_TRAINER_ACE_TRAINER_KIM
FRONTIER_TRAINER_ACE_TRAINER_MACY
FRONTIER_TRAINER_ACE_TRAINER_FAUN
FRONTIER_TRAINER_RANGER_DOYLE
FRONTIER_TRAINER_RANGER_DUKE
FRONTIER_TRAINER_RANGER_DEACON
FRONTIER_TRAINER_RANGER_MENA
FRONTIER_TRAINER_RANGER_MERCY
FRONTIER_TRAINER_RANGER_EVITA
FRONTIER_TRAINER_DRAGON_TAMER_HAROLD
FRONTIER_TRAINER_DRAGON_TAMER_HERMAN
FRONTIER_TRAINER_DRAGON_TAMER_EMMETT
FRONTIER_TRAINER_DRAGON_TAMER_ERICH
FRONTIER_TRAINER_ACE_TRAINER_GARVEY
FRONTIER_TRAINER_ACE_TRAINER_CRUZ
FRONTIER_TRAINER_ACE_TRAINER_PAMELA
FRONTIER_TRAINER_ACE_TRAINER_DANIELA
FRONTIER_TRAINER_YOUNGSTER_KADEN
FRONTIER_TRAINER_YOUNGSTER_KOLBY
FRONTIER_TRAINER_LASS_KARISSA
FRONTIER_TRAINER_LASS_LILIANA
FRONTIER_TRAINER_SCHOOL_KID_JONAS
FRONTIER_TRAINER_SCHOOL_KID_KEON
FRONTIER_TRAINER_SCHOOL_KID_CHELSIE
FRONTIER_TRAINER_SCHOOL_KID_REGINA
FRONTIER_TRAINER_RICH_BOY_DAULTON
FRONTIER_TRAINER_RICH_BOY_HANSON
FRONTIER_TRAINER_LADY_AMORY
FRONTIER_TRAINER_LADY_JULIANA
FRONTIER_TRAINER_BUG_CATCHER_CAMUI
FRONTIER_TRAINER_BUG_CATCHER_ORLANDO
FRONTIER_TRAINER_NINJA_BOY_ZACK
FRONTIER_TRAINER_NINJA_BOY_VANCE
FRONTIER_TRAINER_POKE_KID_KYLA
FRONTIER_TRAINER_POKE_KID_RUBY
FRONTIER_TRAINER_IDOL_KILEY
FRONTIER_TRAINER_IDOL_UTAH
FRONTIER_TRAINER_JOGGER_COLT
FRONTIER_TRAINER_JOGGER_TORY
FRONTIER_TRAINER_FISHERMAN_FARLEY
FRONTIER_TRAINER_FISHERMAN_MARK
FRONTIER_TRAINER_RUIN_MANIAC_SAMUEL
FRONTIER_TRAINER_RUIN_MANIAC_PENN
FRONTIER_TRAINER_COLLECTOR_MARQUEZ
FRONTIER_TRAINER_COLLECTOR_ARNOLD
FRONTIER_TRAINER_GUITARIST_FRED
FRONTIER_TRAINER_GUITARIST_CHASE
FRONTIER_TRAINER_BIRD_KEEPER_MCKENNA
FRONTIER_TRAINER_BIRD_KEEPER_SALLY
FRONTIER_TRAINER_SAILOR_CASPER
FRONTIER_TRAINER_SAILOR_DERRIAN
FRONTIER_TRAINER_HIKER_MONTY
FRONTIER_TRAINER_HIKER_ROCKY
FRONTIER_TRAINER_POLICEMAN_REGGIE
FRONTIER_TRAINER_POLICEMAN_QUINCY
FRONTIER_TRAINER_PI_NEIL
FRONTIER_TRAINER_PI_SERGEI
FRONTIER_TRAINER_CAMPER_FREDDY
FRONTIER_TRAINER_CAMPER_ANDRE
FRONTIER_TRAINER_PICNICKER_INGA
FRONTIER_TRAINER_PICNICKER_TONYA
FRONTIER_TRAINER_GUITARIST_TOBIAS
FRONTIER_TRAINER_GUITARIST_CECIL
FRONTIER_TRAINER_IDOL_MARANDA
FRONTIER_TRAINER_IDOL_HELENE
FRONTIER_TRAINER_POKEFAN_SIMON
FRONTIER_TRAINER_POKEFAN_TURNER
FRONTIER_TRAINER_POKEFAN_EUROPA
FRONTIER_TRAINER_POKEFAN_PANDORA
FRONTIER_TRAINER_RANCHER_VERN
FRONTIER_TRAINER_RANCHER_BORIS
FRONTIER_TRAINER_COWGIRL_CARLY
FRONTIER_TRAINER_COWGIRL_GINGER
FRONTIER_TRAINER_BREEDER_PETER
FRONTIER_TRAINER_BREEDER_TYRON
FRONTIER_TRAINER_BREEDER_ZORYA
FRONTIER_TRAINER_BREEDER_ANTONIA
FRONTIER_TRAINER_ACE_TRAINER_SAWYER
FRONTIER_TRAINER_ACE_TRAINER_CHARLIE
FRONTIER_TRAINER_ACE_TRAINER_CHLOE
FRONTIER_TRAINER_ACE_TRAINER_DAPHNE
FRONTIER_TRAINER_ACE_TRAINER_THAD
FRONTIER_TRAINER_ACE_TRAINER_LEW
FRONTIER_TRAINER_ACE_TRAINER_OPAL
FRONTIER_TRAINER_ACE_TRAINER_LEDA
FRONTIER_TRAINER_RANGER_GEOFF
FRONTIER_TRAINER_RANGER_GUNTHER
FRONTIER_TRAINER_RANGER_ALMA
FRONTIER_TRAINER_RANGER_ELISE
FRONTIER_TRAINER_DRAGON_TAMER_HARVEY
FRONTIER_TRAINER_DRAGON_TAMER_NICOLAS
FRONTIER_TRAINER_BLACK_BELT_FERGUS
FRONTIER_TRAINER_BLACK_BELT_RONNI
FRONTIER_TRAINER_BATTLE_GIRL_EVE
FRONTIER_TRAINER_BATTLE_GIRL_MARIANE
FRONTIER_TRAINER_VETERAN_COSTIN
FRONTIER_TRAINER_VETERAN_ALFRED
FRONTIER_TRAINER_SOCIALITE_RIOHA
FRONTIER_TRAINER_SOCIALITE_JANICE
FRONTIER_TRAINER_PSYCHIC_DENVER
FRONTIER_TRAINER_PSYCHIC_BERKLEY
FRONTIER_TRAINER_PSYCHIC_IRENE
FRONTIER_TRAINER_PSYCHIC_SYLVIE
FRONTIER_TRAINER_WAITER_XANDER
FRONTIER_TRAINER_WAITER_WARREN
FRONTIER_TRAINER_WAITRESS_LESLIE
FRONTIER_TRAINER_WAITRESS_KATHY
FRONTIER_TRAINER_CAMERAMAN_DARREN
FRONTIER_TRAINER_CAMERAMAN_SKIP
FRONTIER_TRAINER_REPORTER_KATIE
FRONTIER_TRAINER_REPORTER_ELAINE
FRONTIER_TRAINER_CYCLIST_CLIVE
FRONTIER_TRAINER_CYCLIST_WARD
FRONTIER_TRAINER_CYCLIST_HILDA
FRONTIER_TRAINER_CYCLIST_VANITA
FRONTIER_TRAINER_PI_RALPH
FRONTIER_TRAINER_PI_CONWAY
FRONTIER_TRAINER_IDOL_KRISTI
FRONTIER_TRAINER_IDOL_TRISTA
FRONTIER_TRAINER_JOGGER_AUSTIN
FRONTIER_TRAINER_JOGGER_DIMITRI
FRONTIER_TRAINER_FISHERMAN_DELANEY
FRONTIER_TRAINER_FISHERMAN_KEATON
FRONTIER_TRAINER_SAILOR_CARLO
FRONTIER_TRAINER_SAILOR_HORATIO
FRONTIER_TRAINER_HIKER_LYLE
FRONTIER_TRAINER_HIKER_GLEN
FRONTIER_TRAINER_RUIN_MANIAC_ISADORE
FRONTIER_TRAINER_RUIN_MANIAC_WALTON
FRONTIER_TRAINER_GUITARIST_ROGET
FRONTIER_TRAINER_GUITARIST_IGGY
FRONTIER_TRAINER_COLLECTOR_LEROY
FRONTIER_TRAINER_COLLECTOR_NEWMAN
FRONTIER_TRAINER_ROUGHNECK_ROSS
FRONTIER_TRAINER_ROUGHNECK_RON
FRONTIER_TRAINER_SCIENTIST_IRWIN
FRONTIER_TRAINER_SCIENTIST_FLYNN
FRONTIER_TRAINER_GENTLEMAN_JOACHIM
FRONTIER_TRAINER_GENTLEMAN_KARSTON
FRONTIER_TRAINER_WORKER_BOYCE
FRONTIER_TRAINER_WORKER_TYRELL
FRONTIER_TRAINER_CLOWN_FRANK
FRONTIER_TRAINER_CLOWN_ENZO
FRONTIER_TRAINER_POLICEMAN_HUGH
FRONTIER_TRAINER_POLICEMAN_KEGAN
FRONTIER_TRAINER_PI_CHESTER
FRONTIER_TRAINER_PI_RIVER
FRONTIER_TRAINER_BIRD_KEEPER_KIRA
FRONTIER_TRAINER_BIRD_KEEPER_ELIZA
FRONTIER_TRAINER_PARASOL_LADY_ANGIE
FRONTIER_TRAINER_PARASOL_LADY_SAMI
FRONTIER_TRAINER_BEAUTY_NADIA
FRONTIER_TRAINER_BEAUTY_BECKY
FRONTIER_TRAINER_AROMA_LADY_ELISHA
FRONTIER_TRAINER_AROMA_LADY_AMBRE
FRONTIER_TRAINER_IDOL_COCOA
FRONTIER_TRAINER_IDOL_NISSA
FRONTIER_TRAINER_TRAINER_CHERYL_CHERYL
FRONTIER_TRAINER_TRAINER_MIRA_MIRA
FRONTIER_TRAINER_TRAINER_RILEY_RILEY
FRONTIER_TRAINER_TRAINER_MARLEY_MARLEY
FRONTIER_TRAINER_TRAINER_BUCK_BUCK
FRONTIER_TRAINER_TOWER_TYCOON_PALMER_SILVER
FRONTIER_TRAINER_TOWER_TYCOON_PALMER_GOLD
FRONTIER_TRAINER_HALL_MATRON_ARGENTA_SILVER
FRONTIER_TRAINER_HALL_MATRON_ARGENTA_GOLD
FRONTIER_TRAINER_FACTORY_HEAD_THORTON_SILVER
FRONTIER_TRAINER_FACTORY_HEAD_THORTON_GOLD
FRONTIER_TRAINER_ARCADE_STAR_DAHLIA_SILVER
FRONTIER_TRAINER_ARCADE_STAR_DAHLIA_GOLD
FRONTIER_TRAINER_CASTLE_VALET_DARACH_SILVER
FRONTIER_TRAINER_CASTLE_VALET_DARACH_GOLD

View File

@ -54,6 +54,7 @@ metang_generators = {
'fade_types': { 'type': 'enum', 'tag': 'FadeType' },
'first_arrival_to_zones': { 'type': 'enum', 'tag': 'FirstArrivalToZone' },
'footprint_sizes': { 'type': 'enum', 'tag': 'FootprintSize' },
'frontier_trainers': { 'type': 'enum', 'tag': 'FrontierTrainerID' },
'gender_ratios': { 'type': 'enum', 'tag': 'GenderRatio' },
'genders': { 'type': 'enum', 'tag': 'Gender' },
'giratina_shadow_animations': {'type': 'enum', 'tag': 'GiratinaShadowAnimation'},
@ -159,6 +160,7 @@ species_txt = files('species.txt')
text_banks_txt = files('text_banks.txt')
trainer_classes_txt = files('trainer_classes.txt')
trainers_txt = files('trainers.txt')
frontier_trainers_txt = files('frontier_trainers.txt')
py_consts_env = environment()
py_consts_env.append('PYTHONPATH', meson.project_build_root())

View File

@ -225,11 +225,11 @@ FLAG_UNK_0x00DF
FLAG_UNK_0x00E0
FLAG_UNK_0x00E1
FLAG_UNK_0x00E2
FLAG_UNK_0x00E3
FLAG_UNK_0x00E4
FLAG_UNK_0x00E5
FLAG_UNK_0x00E6
FLAG_UNK_0x00E7
FLAG_TRAVELED_WITH_CHERYL
FLAG_TRAVELED_WITH_MIRA
FLAG_TRAVELED_WITH_RILEY
FLAG_TRAVELED_WITH_MARLEY
FLAG_BUCK_LEFT_BATTLEGROUND
FLAG_UNK_0x00E8
FLAG_UNK_0x00E9
FLAG_UNK_0x00EA
@ -490,11 +490,11 @@ FLAG_UNK_0x01E8
FLAG_UNK_0x01E9
FLAG_UNK_0x01EA
FLAG_UNK_0x01EB
FLAG_UNK_0x01EC
FLAG_UNK_0x01ED
FLAG_UNK_0x01EE
FLAG_UNK_0x01EF
FLAG_UNK_0x01F0
FLAG_HIDE_BATTLE_SALON_CHERYL
FLAG_HIDE_BATTLE_SALON_MIRA
FLAG_HIDE_BATTLE_SALON_RILEY
FLAG_HIDE_BATTLE_SALON_MARLEY
FLAG_HIDE_BATTLE_SALON_BUCK
FLAG_UNK_0x01F1
FLAG_UNK_0x01F2
FLAG_UNK_0x01F3

View File

@ -0,0 +1,15 @@
#ifndef POKEPLATINUM_CONSTANTS_BATTLE_TOWER_H
#define POKEPLATINUM_CONSTANTS_BATTLE_TOWER_H
#define BT_PARAM_PLAYER_GRAPHICS_ID 0
#define BT_PARAM_PARTNER_GRAPHICS_ID 1
#define BT_PARAM_PARTNER_ID 2
#define BT_PARTNER_CHERYL 0
#define BT_PARTNER_MIRA 1
#define BT_PARTNER_RILEY 2
#define BT_PARTNER_MARLEY 3
#define BT_PARTNER_BUCK 4
#define BT_PARTNERS_COUNT 5
#endif // POKEPLATINUM_CONSTANTS_BATTLE_TOWER_H

View File

@ -6,9 +6,9 @@
#include "struct_decls/struct_0205E884_decl.h"
#include "struct_decls/struct_02061830_decl.h"
#include "struct_decls/struct_02095E80_decl.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/map_load_mode.h"
#include "struct_defs/struct_0202610C.h"
#include "struct_defs/struct_0204AFC4.h"
#include "field/field_system_sub2_decl.h"
#include "overlay005/area_data.h"

View File

@ -62,9 +62,9 @@ typedef struct FrontierPokemonDataDTO {
u16 nickname[MON_NAME_LEN + 1];
} FrontierPokemonDataDTO;
typedef struct {
FrontierTrainerDataDTO unk_00;
FrontierPokemonDataDTO unk_30[4];
} UnkStruct_ov104_0223A348;
typedef struct FrontierDataDTO {
FrontierTrainerDataDTO trDataDTO;
FrontierPokemonDataDTO monDataDTO[4];
} FrontierDataDTO;
#endif // POKEPLATINUM_FRONTIER_DATA_TRANSFER

View File

@ -25,7 +25,7 @@ void ov104_0222E1C0(SaveData *saveData, Party *param1, Pokemon *param2);
void ov104_0222E1D8(Sprite *param0, u8 param1);
void ov104_0222E204(Sprite *param0, s16 param1, s16 param2, u8 param3);
u8 ov104_0222E240(u16 param0, u16 param1);
void ov104_0222E278(UnkStruct_ov104_0223A348 *param0, u16 param1, int heapID, int param3);
void ov104_0222E278(FrontierDataDTO *param0, u16 param1, int heapID, int param3);
void ov104_0222E284(FieldBattleDTO *param0, FrontierTrainerDataDTO *param1, int param2, int param3, int param4);
u32 ov104_0222E2F0(FrontierPokemonDataDTO *param0, u16 param1, int param2, u8 param3, u32 param4, int param5, int param6);
void ov104_0222E330(FrontierPokemonDataDTO *param0, u16 param1[], u8 param2[], u32 param3[], u32 param4[], int param5, int param6, int param7);

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV104_022394A4_H
#define POKEPLATINUM_OV104_022394A4_H
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "savedata.h"

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_OV104_0223A0C4_H
#define POKEPLATINUM_OV104_0223A0C4_H
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0204B404.h"
#include "overlay104/frontier_data_transfer.h"
@ -10,8 +10,8 @@
#include "field_battle_data_transfer.h"
#include "savedata.h"
BOOL ov104_0223A0C4(BattleTower *battleTower, UnkStruct_ov104_0223A348 *param1, u16 param2, int param3, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID);
void ov104_0223A30C(SaveData *saveData, UnkStruct_ov104_0223A348 *param1, const u8 param2);
BOOL ov104_0223A0C4(BattleTower *battleTower, FrontierDataDTO *param1, u16 param2, int param3, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID);
void ov104_0223A30C(SaveData *saveData, FrontierDataDTO *param1, const u8 param2);
FieldBattleDTO *ov104_0223A580(BattleTower *battleTower, UnkStruct_ov104_02230BE4 *param1);
void ov104_0223A734(BattleTower *battleTower, u16 param1);
u16 ov104_0223A750(BattleTower *battleTower, const u16 *param1);

View File

@ -23,7 +23,7 @@ typedef struct {
u32 unk_10;
int unk_14;
u16 unk_18[14];
UnkStruct_ov104_0223A348 unk_34[2];
FrontierDataDTO unk_34[2];
u16 unk_254[6];
u8 unk_260[6];
u32 unk_268[6];

View File

@ -21,7 +21,7 @@ typedef struct {
u32 unk_10;
int unk_14;
u16 unk_18[20];
UnkStruct_ov104_0223A348 unk_40[2];
FrontierDataDTO unk_40[2];
u8 unk_260[2];
Party *unk_264;
u16 unk_268[20];

View File

@ -28,7 +28,7 @@ typedef struct {
Party *unk_28;
Party *unk_2C;
u16 unk_30[14];
UnkStruct_ov104_0223A348 unk_4C[2];
FrontierDataDTO unk_4C[2];
u16 unk_26C[4];
u8 unk_274[4];
u32 unk_278[4];

View File

@ -44,7 +44,7 @@ typedef struct {
u32 unk_C4[4];
u32 unk_D4[4];
u32 unk_E4[4];
UnkStruct_ov104_0223A348 unk_F4[2];
FrontierDataDTO unk_F4[2];
u16 unk_314[4];
u8 unk_31C[4];
u32 unk_320[4];

View File

@ -1,5 +1,7 @@
#ifndef POKEPLATINUM_STRUCT_0204AFC4_H
#define POKEPLATINUM_STRUCT_0204AFC4_H
#ifndef POKEPLATINUM_STRUCT_BATTLE_TOWER_H
#define POKEPLATINUM_STRUCT_BATTLE_TOWER_H
#include "constants/battle_tower.h"
#include "struct_decls/struct_0202D060_decl.h"
#include "struct_decls/struct_0202D750_decl.h"
@ -21,9 +23,9 @@ typedef struct BattleTower {
u8 unk_10_1 : 2;
u8 unk_10_3 : 1;
u8 unk_10_4 : 1;
u8 unk_10_5 : 3;
u8 unk_11;
u8 unk_12;
u8 partnerID : 3;
u8 playerGender;
u8 partnerGender;
u16 unk_14;
u16 unk_16[2];
u16 unk_1A;
@ -39,10 +41,10 @@ typedef struct BattleTower {
Location unk_5C;
UnkStruct_0202D060 *unk_70;
UnkStruct_0202D750 *unk_74;
UnkStruct_ov104_0223A348 unk_78[2];
UnkStruct_ov104_0223A348 unk_298[5];
UnkStruct_0204B404 unk_7E8[5];
u8 unk_838[5];
FrontierDataDTO unk_78[2];
FrontierDataDTO partnersDataDTO[BT_PARTNERS_COUNT];
UnkStruct_0204B404 unk_7E8[BT_PARTNERS_COUNT];
u8 unk_838[BT_PARTNERS_COUNT];
u16 unk_83E[35];
u16 unk_884[35];
int unk_8CC;
@ -55,4 +57,4 @@ typedef struct BattleTower {
u16 unk_8DA;
} BattleTower;
#endif // POKEPLATINUM_STRUCT_0204AFC4_H
#endif // POKEPLATINUM_STRUCT_BATTLE_TOWER_H

View File

@ -50,7 +50,7 @@ BOOL sub_0202D5E8(UnkStruct_0202D764 *param0);
BOOL sub_0202D5F0(UnkStruct_0202D764 *param0);
void sub_0202D5F8(UnkStruct_0202D764 *param0, UnkStruct_ov96_0223B450_sub1 *param1, u8 param2, u8 param3);
void sub_0202D628(UnkStruct_0202D764 *param0, UnkStruct_02049A68 *param1);
void sub_0202D63C(UnkStruct_0202D764 *param0, UnkStruct_ov104_0223A348 *param1, const u8 param2);
void sub_0202D63C(UnkStruct_0202D764 *param0, FrontierDataDTO *param1, const u8 param2);
void sub_0202D6DC(UnkStruct_0202D764 *param0, UnkStruct_ov96_0223B450_sub2 *param1, u8 param2, u8 param3);
void sub_0202D708(UnkStruct_0202D764 *param0, UnkStruct_02049A68 *param1);
UnkStruct_ov90_021D1750 *sub_0202D71C(UnkStruct_0202D764 *, int heapID);

View File

@ -7,7 +7,7 @@ BOOL ScrCmd_InitBattleTower(ScriptContext *ctx);
BOOL ScrCmd_SetBattleTowerNull(ScriptContext *ctx);
BOOL ScrCmd_FreeBattleTower(ScriptContext *ctx);
BOOL ScrCmd_CallBattleTowerFunction(ScriptContext *ctx);
BOOL ScrCmd_1DE(ScriptContext *ctx);
BOOL ScrCmd_GetBattleTowerPartnerSpeciesAndMove(ScriptContext *ctx);
BOOL ScrCmd_1DF(ScriptContext *ctx);
BOOL ScrCmd_1E0(ScriptContext *ctx);
BOOL ScrCmd_1E1(ScriptContext *ctx);

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_UNK_02049D08_H
#include "struct_decls/struct_0202D060_decl.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "field/field_system_decl.h"
@ -35,7 +35,7 @@ void sub_0204A660(BattleTower *battleTower, SaveData *saveData);
void sub_0204A7A4(BattleTower *battleTower, SaveData *saveData, JournalEntry *param2);
void sub_0204A8C8(BattleTower *battleTower);
void sub_0204A97C(BattleTower *battleTower);
u16 sub_0204A9E0(BattleTower *battleTower, u16 param1);
u16 BattleTower_GetObjectIDFromOpponentID(BattleTower *battleTower, u16 param1);
u16 BattleTower_GetChallengeMode(BattleTower *battleTower);
u16 sub_0204A9FC(BattleTower *battleTower);
u16 sub_0204AA04(BattleTower *battleTower);
@ -44,7 +44,7 @@ u16 sub_0204AABC(BattleTower *battleTower, SaveData *saveData, u8 param2);
u16 sub_0204AB68(BattleTower *battleTower, SaveData *saveData);
u16 sub_0204ABA0(BattleTower *battleTower, SaveData *saveData);
u16 sub_0204ABF4(BattleTower *battleTower, SaveData *saveData);
u8 sub_0204AE84(u16 param0);
u8 BattleTower_GetIVsFromTrainerID(u16 param0);
u16 sub_0204AEC0(BattleTower *battleTower);
#endif // POKEPLATINUM_UNK_02049D08_H

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_UNK_0204AEE8_H
#define POKEPLATINUM_UNK_0204AEE8_H
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0204B404.h"
#include "field/field_system_decl.h"
@ -11,7 +11,7 @@
#include "string_template.h"
StringTemplate *BattleFrontier_MakeSeenBanlistSpeciesMsg(SaveData *saveData, u16 numPokemonRequired, u16 unused2, u8 unused3, u8 *outNumBannedSeen);
u16 sub_0204AF9C(u8 param0);
u16 BattleFrontier_GetObjectIDFromTrainerClass(u8 trainerClass);
u16 sub_0204AFC4(FieldSystem *fieldSystem, const u16 *param1);
u16 sub_0204B020(FieldSystem *fieldSystem, const u16 *param1);
u16 sub_0204B044(FieldSystem *fieldSystem, const u16 *param1);
@ -19,7 +19,7 @@ void sub_0204B060(BattleTower *battleTower, SaveData *saveData);
void sub_0204B0BC(BattleTower *battleTower);
void sub_0204B0D4(BattleTower *battleTower, u16 param1);
u16 sub_0204B0F0(BattleTower *battleTower, u8 param1, u8 param2, int param3);
BOOL sub_0204B3B8(BattleTower *battleTower, UnkStruct_ov104_0223A348 *param1, u16 param2, int param3, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID);
void sub_0204B404(BattleTower *battleTower, UnkStruct_ov104_0223A348 *param1, u16 param2, BOOL param3, const UnkStruct_0204B404 *param4, int heapID);
BOOL sub_0204B3B8(BattleTower *battleTower, FrontierDataDTO *param1, u16 partnerBattleTowerID, int partysize, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID);
void sub_0204B404(BattleTower *battleTower, FrontierDataDTO *param1, u16 partnerBattleTowerID, BOOL param3, const UnkStruct_0204B404 *param4, int heapID);
#endif // POKEPLATINUM_UNK_0204AEE8_H

View File

@ -1,7 +1,7 @@
#ifndef POKEPLATINUM_UNK_0209BA80_H
#define POKEPLATINUM_UNK_0209BA80_H
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0209BBA4.h"
void sub_0209BA80(void *param0);

View File

@ -2,7 +2,7 @@
"bg_events": [],
"object_events": [
{
"id": "BATTLE_TOWER_BATTLE_SALON_TEALA_0",
"id": "BATTLE_TOWER_BATTLE_SALON_TEALA",
"graphics_id": "OBJ_EVENT_GFX_TEALA",
"movement_type": "MOVEMENT_TYPE_NONE",
"trainer_type": "TRAINER_TYPE_NONE",
@ -17,11 +17,11 @@
"y": 0
},
{
"id": "BATTLE_TOWER_BATTLE_SALON_CHERYL_1",
"id": "BATTLE_TOWER_BATTLE_SALON_CHERYL",
"graphics_id": "OBJ_EVENT_GFX_CHERYL",
"movement_type": "MOVEMENT_TYPE_LOOK_AROUND",
"trainer_type": "TRAINER_TYPE_NONE",
"hidden_flag": "FLAG_UNK_0x01EC",
"hidden_flag": "FLAG_HIDE_BATTLE_SALON_CHERYL",
"script": 2,
"initial_dir": 2,
"data": [],
@ -32,11 +32,11 @@
"y": 0
},
{
"id": "BATTLE_TOWER_BATTLE_SALON_MIRA_2",
"id": "BATTLE_TOWER_BATTLE_SALON_MIRA",
"graphics_id": "OBJ_EVENT_GFX_MIRA",
"movement_type": "MOVEMENT_TYPE_LOOK_AROUND",
"trainer_type": "TRAINER_TYPE_NONE",
"hidden_flag": "FLAG_UNK_0x01ED",
"hidden_flag": "FLAG_HIDE_BATTLE_SALON_MIRA",
"script": 3,
"initial_dir": 3,
"data": [],
@ -47,11 +47,11 @@
"y": 0
},
{
"id": "BATTLE_TOWER_BATTLE_SALON_RILEY_3",
"id": "BATTLE_TOWER_BATTLE_SALON_RILEY",
"graphics_id": "OBJ_EVENT_GFX_RILEY",
"movement_type": "MOVEMENT_TYPE_LOOK_AROUND",
"trainer_type": "TRAINER_TYPE_NONE",
"hidden_flag": "FLAG_UNK_0x01EE",
"hidden_flag": "FLAG_HIDE_BATTLE_SALON_RILEY",
"script": 4,
"initial_dir": 1,
"data": [],
@ -62,11 +62,11 @@
"y": 0
},
{
"id": "BATTLE_TOWER_BATTLE_SALON_MARLEY_4",
"id": "BATTLE_TOWER_BATTLE_SALON_MARLEY",
"graphics_id": "OBJ_EVENT_GFX_MARLEY",
"movement_type": "MOVEMENT_TYPE_LOOK_AROUND",
"trainer_type": "TRAINER_TYPE_NONE",
"hidden_flag": "FLAG_UNK_0x01EF",
"hidden_flag": "FLAG_HIDE_BATTLE_SALON_MARLEY",
"script": 5,
"initial_dir": 3,
"data": [],
@ -77,11 +77,11 @@
"y": 0
},
{
"id": "BATTLE_TOWER_BATTLE_SALON_BUCK_5",
"id": "BATTLE_TOWER_BATTLE_SALON_BUCK",
"graphics_id": "OBJ_EVENT_GFX_BUCK",
"movement_type": "MOVEMENT_TYPE_LOOK_AROUND",
"trainer_type": "TRAINER_TYPE_NONE",
"hidden_flag": "FLAG_UNK_0x01F0",
"hidden_flag": "FLAG_HIDE_BATTLE_SALON_BUCK",
"script": 6,
"initial_dir": 0,
"data": [],

View File

@ -2,7 +2,7 @@
"bg_events": [],
"object_events": [
{
"id": "BATTLE_TOWER_CORRIDOR_MULTI_TEALA_0",
"id": "BATTLE_TOWER_CORRIDOR_MULTI_LEFT_ATTENDANT",
"graphics_id": "OBJ_EVENT_GFX_TEALA",
"movement_type": "MOVEMENT_TYPE_NONE",
"trainer_type": "TRAINER_TYPE_NONE",
@ -17,7 +17,7 @@
"y": 0
},
{
"id": "BATTLE_TOWER_CORRIDOR_MULTI_TEALA_1",
"id": "BATTLE_TOWER_CORRIDOR_MULTI_RIGHT_ATTENDANT",
"graphics_id": "OBJ_EVENT_GFX_TEALA",
"movement_type": "MOVEMENT_TYPE_NONE",
"trainer_type": "TRAINER_TYPE_NONE",
@ -32,7 +32,7 @@
"y": 0
},
{
"id": "BATTLE_TOWER_CORRIDOR_MULTI_COUNTERPART_2",
"id": "BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_LEADER",
"graphics_id": "OBJ_EVENT_GFX_COUNTERPART",
"movement_type": "MOVEMENT_TYPE_NONE",
"trainer_type": "TRAINER_TYPE_NONE",
@ -47,7 +47,7 @@
"y": 0
},
{
"id": "BATTLE_TOWER_CORRIDOR_MULTI_UNK_102_3",
"id": "BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_PARTNER",
"graphics_id": "OBJ_EVENT_GFX_UNK_102",
"movement_type": "MOVEMENT_TYPE_NONE",
"trainer_type": "TRAINER_TYPE_NONE",

View File

@ -288,7 +288,7 @@ _04DC:
CallIfEq VAR_UNK_0x40BE, 2, _05CD
IncrementGameRecord RECORD_UNK_058
CreateJournalEvent LOCATION_EVENT_BATTLE_ARCADE, 0, 0, 0, 0
ScrCmd_1F8
WaitForTransition
ScrCmd_2C4 15
CallIfEq VAR_UNK_0x40BE, 2, _0545
ReturnToField

View File

@ -285,7 +285,7 @@ _04D0:
CallIfEq VAR_UNK_0x40BD, 2, _05C1
IncrementGameRecord RECORD_UNK_058
CreateJournalEvent LOCATION_EVENT_BATTLE_CASTLE, 0, 0, 0, 0
ScrCmd_1F8
WaitForTransition
ScrCmd_2C4 11
CallIfEq VAR_UNK_0x40BD, 2, _0539
ReturnToField

View File

@ -237,7 +237,7 @@ _03C1:
CallIfEq VAR_UNK_0x40B8, 2, _04B2
IncrementGameRecord RECORD_UNK_058
CreateJournalEvent LOCATION_EVENT_BATTLE_FACTORY, 0, 0, 0, 0
ScrCmd_1F8
WaitForTransition
ScrCmd_2C4 3
CallIfEq VAR_UNK_0x40B8, 2, _042A
ReturnToField

View File

@ -404,7 +404,7 @@ _06C3:
CallIfEq VAR_UNK_0x40BB, 2, _07B4
IncrementGameRecord RECORD_UNK_058
CreateJournalEvent LOCATION_EVENT_BATTLE_HALL, 0, 0, 0, 0
ScrCmd_1F8
WaitForTransition
ScrCmd_2C4 9
CallIfEq VAR_UNK_0x40BB, 2, _072C
ReturnToField

View File

@ -3,9 +3,9 @@
#include "res/text/bank/menu_entries.h"
ScriptEntry BattleTower_SingleDoubleBattleRoomGuide
ScriptEntry BattleTower_MultiBattleRoomGuide
ScriptEntry BattleTower_WiFiBattleRoomGuide
ScriptEntry BattleTower_SingleDoubleBattleRoomAttendant
ScriptEntry BattleTower_MultiBattleRoomAttendant
ScriptEntry BattleTower_WiFiBattleRoomAttendant
ScriptEntry _0EBF
ScriptEntry _04EC
ScriptEntry _0597
@ -171,7 +171,7 @@ _0272:
GoTo _020B
End
BattleTower_SingleDoubleBattleRoomGuide:
BattleTower_SingleDoubleBattleRoomAttendant:
LockAll
PlayFanfare SEQ_SE_CONFIRM
SetBattleTowerNull
@ -320,7 +320,7 @@ BattleTower_HealAndSaveBeforeEnteringMultiBattleRoom:
Call _0577
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_SET_COMMUNICATION_CLUB_ACCESSIBLE, 0, 0
Call BattleTower_TrySaveGame
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_51, 0, VAR_RESULT
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_ID, 0, VAR_RESULT
SetVar VAR_MAP_LOCAL_9, VAR_RESULT
Message BattleTower_Text_DirectToMultiBattleRoom
WaitABPress
@ -486,7 +486,7 @@ _07B9:
SetVar VAR_UNK_0x40DF, 0
Return
BattleTower_WiFiBattleRoomGuide:
BattleTower_WiFiBattleRoomAttendant:
LockAll
PlayFanfare SEQ_SE_CONFIRM
SetBattleTowerNull
@ -653,7 +653,7 @@ _0AC3:
WaitMovement
Return
BattleTower_MultiBattleRoomGuide:
BattleTower_MultiBattleRoomAttendant:
LockAll
PlayFanfare SEQ_SE_CONFIRM
SetBattleTowerNull

View File

@ -13,7 +13,7 @@
_0016:
GoToIfEq VAR_UNK_0x40D9, 0, _0035
SetFlag FLAG_UNK_0x01CB
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 0, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PLAYER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_0, VAR_MAP_LOCAL_0
_0035:
End
@ -257,7 +257,7 @@ _0448:
Return
_045C:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_41, 0, VAR_RESULT
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_OPPONENT_OBJECT_ID, 0, VAR_RESULT
SetVar VAR_OBJ_GFX_ID_1, VAR_RESULT
ClearFlag FLAG_UNK_0x01CB
AddObject 1

View File

@ -1,120 +1,121 @@
#include "macros/scrcmd.inc"
#include "res/text/bank/battle_tower_battle_salon.h"
#include "res/field/events/events_battle_tower_battle_salon.h"
#include "constants/map_object.h"
ScriptEntry _01AC
ScriptEntry _0275
ScriptEntry _02FE
ScriptEntry _0365
ScriptEntry _03C6
ScriptEntry _0427
ScriptEntry _002A
ScriptEntry BattleTowerBattleSalon_Attendant
ScriptEntry BattleTowerBattleSalon_Cheryl
ScriptEntry BattleTowerBattleSalon_Mira
ScriptEntry BattleTowerBattleSalon_Riley
ScriptEntry BattleTowerBattleSalon_Marley
ScriptEntry BattleTowerBattleSalon_Buck
ScriptEntry BattleTowerBattleSalon_CheckShowCheryl
ScriptEntry _015D
ScriptEntry _018D
ScriptEntry _0204
ScriptEntry BattleTowerBattleSalon_Enter
ScriptEntry BattleTowerBattleSalon_EnterBattleRoom
ScriptEntryEnd
_002A:
GoToIfUnset FLAG_UNK_0x00E3, _0121
GoToIfNe VAR_UNK_0x40DF, 2, _0057
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 2, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, 0, _0121
_0057:
ClearFlag FLAG_UNK_0x01EC
_005B:
GoToIfUnset FLAG_UNK_0x00E4, _012D
GoToIfNe VAR_UNK_0x40DF, 2, _0088
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 2, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, 1, _012D
_0088:
ClearFlag FLAG_UNK_0x01ED
_008C:
GoToIfUnset FLAG_UNK_0x00E5, _0139
GoToIfNe VAR_UNK_0x40DF, 2, _00B9
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 2, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, 2, _0139
_00B9:
ClearFlag FLAG_UNK_0x01EE
_00BD:
GoToIfUnset FLAG_UNK_0x00E6, _0145
GoToIfNe VAR_UNK_0x40DF, 2, _00EA
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 2, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, 3, _0145
_00EA:
ClearFlag FLAG_UNK_0x01EF
_00EE:
GoToIfUnset FLAG_UNK_0x00E7, _0151
GoToIfNe VAR_UNK_0x40DF, 2, _011B
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 2, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, 4, _0151
_011B:
ClearFlag FLAG_UNK_0x01F0
_011F:
BattleTowerBattleSalon_CheckShowCheryl:
GoToIfUnset FLAG_TRAVELED_WITH_CHERYL, BattleTowerBattleSalon_HideCheryl
GoToIfNe VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_ShowCheryl
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_ID, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, BT_PARTNER_CHERYL, BattleTowerBattleSalon_HideCheryl
BattleTowerBattleSalon_ShowCheryl:
ClearFlag FLAG_HIDE_BATTLE_SALON_CHERYL
BattleTowerBattleSalon_CheckShowMira:
GoToIfUnset FLAG_TRAVELED_WITH_MIRA, BattleTowerBattleSalon_HideMira
GoToIfNe VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_ShowMira
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_ID, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, BT_PARTNER_MIRA, BattleTowerBattleSalon_HideMira
BattleTowerBattleSalon_ShowMira:
ClearFlag FLAG_HIDE_BATTLE_SALON_MIRA
BattleTowerBattleSalon_CheckShowRiley:
GoToIfUnset FLAG_TRAVELED_WITH_RILEY, BattleTowerBattleSalon_HideRiley
GoToIfNe VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_ShowRiley
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_ID, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, BT_PARTNER_RILEY, BattleTowerBattleSalon_HideRiley
BattleTowerBattleSalon_ShowRiley:
ClearFlag FLAG_HIDE_BATTLE_SALON_RILEY
BattleTowerBattleSalon_CheckShowMarley:
GoToIfUnset FLAG_TRAVELED_WITH_MARLEY, BattleTowerBattleSalon_HideMarley
GoToIfNe VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_ShowMarley
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_ID, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, BT_PARTNER_MARLEY, BattleTowerBattleSalon_HideMarley
BattleTowerBattleSalon_ShowMarley:
ClearFlag FLAG_HIDE_BATTLE_SALON_MARLEY
BattleTowerBattleSalon_CheckShowBuck:
GoToIfUnset FLAG_BUCK_LEFT_BATTLEGROUND, BattleTowerBattleSalon_HideBuck
GoToIfNe VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_ShowBuck
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_ID, VAR_MAP_LOCAL_9
GoToIfEq VAR_MAP_LOCAL_9, BT_PARTNER_BUCK, BattleTowerBattleSalon_HideBuck
BattleTowerBattleSalon_ShowBuck:
ClearFlag FLAG_HIDE_BATTLE_SALON_BUCK
BattleTowerBattleSalon_EndCheckShowPartners:
End
_0121:
SetFlag FLAG_UNK_0x01EC
GoTo _005B
BattleTowerBattleSalon_HideCheryl:
SetFlag FLAG_HIDE_BATTLE_SALON_CHERYL
GoTo BattleTowerBattleSalon_CheckShowMira
End
_012D:
SetFlag FLAG_UNK_0x01ED
GoTo _008C
BattleTowerBattleSalon_HideMira:
SetFlag FLAG_HIDE_BATTLE_SALON_MIRA
GoTo BattleTowerBattleSalon_CheckShowRiley
End
_0139:
SetFlag FLAG_UNK_0x01EE
GoTo _00BD
BattleTowerBattleSalon_HideRiley:
SetFlag FLAG_HIDE_BATTLE_SALON_RILEY
GoTo BattleTowerBattleSalon_CheckShowMarley
End
_0145:
SetFlag FLAG_UNK_0x01EF
GoTo _00EE
BattleTowerBattleSalon_HideMarley:
SetFlag FLAG_HIDE_BATTLE_SALON_MARLEY
GoTo BattleTowerBattleSalon_CheckShowBuck
End
_0151:
SetFlag FLAG_UNK_0x01F0
GoTo _011F
BattleTowerBattleSalon_HideBuck:
SetFlag FLAG_HIDE_BATTLE_SALON_BUCK
GoTo BattleTowerBattleSalon_EndCheckShowPartners
End
_015D:
CallIfEq VAR_UNK_0x40DF, 1, _0179
GoToIfEq VAR_UNK_0x40DF, 2, _017F
CallIfEq VAR_UNK_0x40DF, 1, BattleTowerBattleSalon_HidePlayer
GoToIfEq VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_SetAttendantPositionAtDoor
End
_0179:
BattleTowerBattleSalon_HidePlayer:
HideObject LOCALID_PLAYER
Return
_017F:
SetPosition 0, 8, 0, 3, 1
BattleTowerBattleSalon_SetAttendantPositionAtDoor:
SetPosition BATTLE_TOWER_BATTLE_SALON_TEALA, 8, 0, 3, 1
End
_018D:
BattleTowerBattleSalon_Enter:
LockAll
SetVar VAR_UNK_0x40DF, 0
Call _04A6
Message 0
Call BattleTowerBattleSalon_PlayEnterBattleSalonAnimation
Message BattleTowerBattleSalon_Text_PleaseFindAPartner
CloseMessage
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_56, 0, 0
ReleaseAll
End
_01AC:
BattleTowerBattleSalon_Attendant:
PlayFanfare SEQ_SE_CONFIRM
LockAll
FacePlayer
BufferPlayerName 0
Message 1
Message BattleTowerBattleSalon_Text_WouldYouLikeToQuit
ShowYesNoMenu VAR_RESULT
GoToIfEq VAR_RESULT, MENU_YES, _01D4
Message 0
GoToIfEq VAR_RESULT, MENU_YES, BattleTowerBattleSalon_Quit
Message BattleTowerBattleSalon_Text_PleaseFindAPartner
CloseMessage
ReleaseAll
End
_01D4:
BattleTowerBattleSalon_Quit:
CloseMessage
ReleaseAll
SetVar VAR_UNK_0x40D8, 3
@ -125,12 +126,12 @@ _01D4:
WaitFadeScreen
End
_0204:
BattleTowerBattleSalon_EnterBattleRoom:
LockAll
SetVar VAR_UNK_0x40DF, 0
Message 2
Message BattleTowerBattleSalon_Text_ShowYouToMultiBattleRoom
CloseMessage
Call _04E0
Call BattleTowerBattleSalon_PlayEnterBattleRoomAnimation
SetVar VAR_UNK_0x40DB, 2
FadeScreenOut
WaitFadeScreen
@ -140,201 +141,201 @@ _0204:
ReleaseAll
End
_0245:
ScrCmd_1DE VAR_MAP_LOCAL_9, 0, VAR_0x8004, VAR_0x8005
BattleTowerBattleSalon_BufferSpeciesAndMoveNames:
GetBattleTowerPartnerSpeciesAndMove VAR_MAP_LOCAL_9, 0, VAR_0x8004, VAR_0x8005
BufferSpeciesNameFromVar 0, VAR_0x8004, 0, 0
BufferMoveName 1, VAR_0x8005
ScrCmd_1DE VAR_MAP_LOCAL_9, 1, VAR_0x8004, VAR_0x8005
GetBattleTowerPartnerSpeciesAndMove VAR_MAP_LOCAL_9, 1, VAR_0x8004, VAR_0x8005
BufferSpeciesNameFromVar 2, VAR_0x8004, 0, 0
BufferMoveName 3, VAR_0x8005
Return
_0275:
BattleTowerBattleSalon_Cheryl:
PlayFanfare SEQ_SE_CONFIRM
LockAll
FacePlayer
GoToIfEq VAR_UNK_0x40DF, 2, _02D2
SetVar VAR_MAP_LOCAL_9, 0
ScrCmd_1DE VAR_MAP_LOCAL_9, 0, VAR_0x8004, VAR_0x8005
GoToIfEq VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_CherylDontTeamUp
SetVar VAR_MAP_LOCAL_9, BT_PARTNER_CHERYL
GetBattleTowerPartnerSpeciesAndMove VAR_MAP_LOCAL_9, 0, VAR_0x8004, VAR_0x8005
BufferSpeciesNameWithArticle 0, VAR_0x8004
BufferMoveName 1, VAR_0x8005
ScrCmd_1DE VAR_MAP_LOCAL_9, 1, VAR_0x8004, VAR_0x8005
GetBattleTowerPartnerSpeciesAndMove VAR_MAP_LOCAL_9, 1, VAR_0x8004, VAR_0x8005
BufferSpeciesNameWithArticle 2, VAR_0x8004
BufferMoveName 3, VAR_0x8005
Message 6
Message BattleTowerBattleSalon_Text_CherylWouldYouLikeToTeamUp
ShowYesNoMenu VAR_RESULT
GoToIfEq VAR_RESULT, MENU_YES, _02DD
_02D2:
Message 7
GoToIfEq VAR_RESULT, MENU_YES, BattleTowerBattleSalon_CherylTeamUp
BattleTowerBattleSalon_CherylDontTeamUp:
Message BattleTowerBattleSalon_Text_CherylDontTeamUp
WaitABXPadPress
CloseMessage
ReleaseAll
End
_02DD:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_50, VAR_MAP_LOCAL_9, 0
BattleTowerBattleSalon_CherylTeamUp:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_SET_PARTNER_ID, VAR_MAP_LOCAL_9, 0
SetVar VAR_UNK_0x40DF, 2
Message 8
Message BattleTowerBattleSalon_Text_CherylTeamUp
CloseMessage
ReleaseAll
LockObject 1
GoTo _055C
LockObject BATTLE_TOWER_BATTLE_SALON_CHERYL
GoTo BattleTowerBattleSalon_CherylWalkToAttendant
End
_02FE:
BattleTowerBattleSalon_Mira:
PlayFanfare SEQ_SE_CONFIRM
LockAll
FacePlayer
GoToIfEq VAR_UNK_0x40DF, 2, _0336
SetVar VAR_MAP_LOCAL_9, 1
Call _0245
GoToIfEq VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_MiraDontTeamUp
SetVar VAR_MAP_LOCAL_9, BT_PARTNER_MIRA
Call BattleTowerBattleSalon_BufferSpeciesAndMoveNames
BufferPlayerName 4
Message 15
Message BattleTowerBattleSalon_Text_MiraWouldYouLikeToTeamUp
ShowYesNoMenu VAR_RESULT
GoToIfEq VAR_RESULT, MENU_YES, _0341
_0336:
Message 16
GoToIfEq VAR_RESULT, MENU_YES, BattleTowerBattleSalon_MiraTeamUp
BattleTowerBattleSalon_MiraDontTeamUp:
Message BattleTowerBattleSalon_Text_MiraDontTeamUp
WaitABXPadPress
CloseMessage
ReleaseAll
End
_0341:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_50, VAR_MAP_LOCAL_9, 0
BattleTowerBattleSalon_MiraTeamUp:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_SET_PARTNER_ID, VAR_MAP_LOCAL_9, 0
SetVar VAR_UNK_0x40DF, 2
BufferPlayerName 0
Message 17
Message BattleTowerBattleSalon_Text_MiraTeamUp
CloseMessage
ReleaseAll
LockObject 2
GoTo _05A1
LockObject BATTLE_TOWER_BATTLE_SALON_MIRA
GoTo BattleTowerBattleSalon_MiraWalkToAttendant
End
_0365:
BattleTowerBattleSalon_Riley:
PlayFanfare SEQ_SE_CONFIRM
LockAll
FacePlayer
GoToIfEq VAR_UNK_0x40DF, 2, _039A
SetVar VAR_MAP_LOCAL_9, 2
Call _0245
Message 3
GoToIfEq VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_RileyDontTeamUp
SetVar VAR_MAP_LOCAL_9, BT_PARTNER_RILEY
Call BattleTowerBattleSalon_BufferSpeciesAndMoveNames
Message BattleTowerBattleSalon_Text_RileyWouldYouLikeToTeamUp
ShowYesNoMenu VAR_RESULT
GoToIfEq VAR_RESULT, MENU_YES, _03A5
_039A:
Message 4
GoToIfEq VAR_RESULT, MENU_YES, BattleTowerBattleSalon_RileyTeamUp
BattleTowerBattleSalon_RileyDontTeamUp:
Message BattleTowerBattleSalon_Text_RileyDontTeamUp
WaitABXPadPress
CloseMessage
ReleaseAll
End
_03A5:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_50, VAR_MAP_LOCAL_9, 0
BattleTowerBattleSalon_RileyTeamUp:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_SET_PARTNER_ID, VAR_MAP_LOCAL_9, 0
SetVar VAR_UNK_0x40DF, 2
Message 5
Message BattleTowerBattleSalon_Text_RileyTeamUp
CloseMessage
ReleaseAll
LockObject 3
GoTo _05E6
LockObject BATTLE_TOWER_BATTLE_SALON_RILEY
GoTo BattleTowerBattleSalon_RileyWalkToAttendant
End
_03C6:
BattleTowerBattleSalon_Marley:
PlayFanfare SEQ_SE_CONFIRM
LockAll
FacePlayer
GoToIfEq VAR_UNK_0x40DF, 2, _03FB
SetVar VAR_MAP_LOCAL_9, 3
Call _0245
Message 12
GoToIfEq VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_MarleyDontTeamUp
SetVar VAR_MAP_LOCAL_9, BT_PARTNER_MARLEY
Call BattleTowerBattleSalon_BufferSpeciesAndMoveNames
Message BattleTowerBattleSalon_Text_MarleyWouldYouLikeToTeamUp
ShowYesNoMenu VAR_RESULT
GoToIfEq VAR_RESULT, MENU_YES, _0406
_03FB:
Message 13
GoToIfEq VAR_RESULT, MENU_YES, BattleTowerBattleSalon_MarleyTeamUp
BattleTowerBattleSalon_MarleyDontTeamUp:
Message BattleTowerBattleSalon_Text_MarleyDontTeamUp
WaitABXPadPress
CloseMessage
ReleaseAll
End
_0406:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_50, VAR_MAP_LOCAL_9, 0
BattleTowerBattleSalon_MarleyTeamUp:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_SET_PARTNER_ID, VAR_MAP_LOCAL_9, 0
SetVar VAR_UNK_0x40DF, 2
Message 14
Message BattleTowerBattleSalon_Text_MarleyTeamUp
CloseMessage
ReleaseAll
LockObject 4
GoTo _062B
LockObject BATTLE_TOWER_BATTLE_SALON_MARLEY
GoTo BattleTowerBattleSalon_MarleyWalkToAttendant
End
_0427:
BattleTowerBattleSalon_Buck:
PlayFanfare SEQ_SE_CONFIRM
LockAll
FacePlayer
GoToIfEq VAR_UNK_0x40DF, 2, _045C
SetVar VAR_MAP_LOCAL_9, 4
Call _0245
Message 9
GoToIfEq VAR_UNK_0x40DF, 2, BattleTowerBattleSalon_BuckDontTeamUp
SetVar VAR_MAP_LOCAL_9, BT_PARTNER_BUCK
Call BattleTowerBattleSalon_BufferSpeciesAndMoveNames
Message BattleTowerBattleSalon_Text_BuckWouldYouLikeToTeamUp
ShowYesNoMenu VAR_RESULT
GoToIfEq VAR_RESULT, MENU_YES, _0467
_045C:
Message 10
GoToIfEq VAR_RESULT, MENU_YES, BattleTowerBattleSalon_BuckTeamUp
BattleTowerBattleSalon_BuckDontTeamUp:
Message BattleTowerBattleSalon_Text_BuckDontTeamUp
WaitABXPadPress
CloseMessage
ReleaseAll
End
_0467:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_50, VAR_MAP_LOCAL_9, 0
BattleTowerBattleSalon_BuckTeamUp:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_SET_PARTNER_ID, VAR_MAP_LOCAL_9, 0
SetVar VAR_UNK_0x40DF, 2
Message 11
Message BattleTowerBattleSalon_Text_BuckTeamUp
CloseMessage
ReleaseAll
LockObject 5
GoTo _0670
LockObject BATTLE_TOWER_BATTLE_SALON_BUCK
GoTo BattleTowerBattleSalon_BuckWalkToAttendant
End
_0488:
BattleTowerBattleSalon_PlayOpenDoorAnimation:
LoadDoorAnimation 0, 0, 8, 2, ANIMATION_TAG_DOOR_1
PlayDoorOpenAnimation ANIMATION_TAG_DOOR_1
WaitForAnimation ANIMATION_TAG_DOOR_1
Return
_049B:
BattleTowerBattleSalon_PlayCloseDoorAnimation:
PlayDoorCloseAnimation ANIMATION_TAG_DOOR_1
WaitForAnimation ANIMATION_TAG_DOOR_1
UnloadAnimation ANIMATION_TAG_DOOR_1
Return
_04A6:
Call _0488
ApplyMovement 0, _06C8
BattleTowerBattleSalon_PlayEnterBattleSalonAnimation:
Call BattleTowerBattleSalon_PlayOpenDoorAnimation
ApplyMovement BATTLE_TOWER_BATTLE_SALON_TEALA, BattleTowerBattleSalon_AttendantEnterBattleSalonMovement
WaitMovement
ShowObject LOCALID_PLAYER
ApplyMovement LOCALID_PLAYER, _06B8
ApplyMovement LOCALID_PLAYER, BattleTowerBattleSalon_PlayerEnterBattleSalonMovement
WaitMovement
Call _049B
ApplyMovement 0, _06D8
Call BattleTowerBattleSalon_PlayCloseDoorAnimation
ApplyMovement BATTLE_TOWER_BATTLE_SALON_TEALA, BattleTowerBattleSalon_AttendantBlockDoorMovement
WaitMovement
ApplyMovement LOCALID_PLAYER, _06C0
ApplyMovement LOCALID_PLAYER, BattleTowerBattleSalon_PlayerFaceNorthMovement
WaitMovement
Return
_04E0:
Call _0488
ApplyMovement 0, _070C
ApplyMovement LOCALID_PLAYER, _0700
BattleTowerBattleSalon_PlayEnterBattleRoomAnimation:
Call BattleTowerBattleSalon_PlayOpenDoorAnimation
ApplyMovement BATTLE_TOWER_BATTLE_SALON_TEALA, BattleTowerBattleSalon_AttendantEnterBattleRoomMovement
ApplyMovement LOCALID_PLAYER, BattleTowerBattleSalon_PlayerEnterBattleRoomMovement
WaitMovement
Call _049B
Call BattleTowerBattleSalon_PlayCloseDoorAnimation
Return
_0500:
ApplyMovement VAR_MAP_LOCAL_0, _0718
BattleTowerBattleSalon_PartnerEnterBattleRoom:
ApplyMovement VAR_MAP_LOCAL_0, BattleTowerBattleSalon_PartnerFaceNorthMovement
WaitMovement
ApplyMovement 0, _06E4
ApplyMovement BATTLE_TOWER_BATTLE_SALON_TEALA, BattleTowerBattleSalon_AttendantMoveAwayMovement
WaitMovement
Call _0488
ApplyMovement VAR_MAP_LOCAL_0, _0720
Call BattleTowerBattleSalon_PlayOpenDoorAnimation
ApplyMovement VAR_MAP_LOCAL_0, BattleTowerBattleSalon_PartnerEnterBattleRoomMovement
WaitMovement
Call _049B
ApplyMovement 0, _06F4
Call BattleTowerBattleSalon_PlayCloseDoorAnimation
ApplyMovement BATTLE_TOWER_BATTLE_SALON_TEALA, BattleTowerBattleSalon_AttendantMoveBackMovement
WaitMovement
FadeScreenOut
WaitFadeScreen
@ -344,162 +345,162 @@ _0500:
ReleaseAll
End
_055C:
SetVar VAR_MAP_LOCAL_0, 1
BattleTowerBattleSalon_CherylWalkToAttendant:
SetVar VAR_MAP_LOCAL_0, BATTLE_TOWER_BATTLE_SALON_CHERYL
GetPlayerMapPos VAR_0x8000, VAR_0x8001
GoToIfEq VAR_0x8000, 12, _057D
GoTo _058F
GoToIfEq VAR_0x8000, 12, BattleTowerBattleSalon_CherylWalkWestToAttendant
GoTo BattleTowerBattleSalon_CherylWalkSouthToAttendant
End
_057D:
ApplyMovement 1, _072C
BattleTowerBattleSalon_CherylWalkWestToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_CHERYL, BattleTowerBattleSalon_CherylWalkSouthToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_058F:
ApplyMovement 1, _0740
BattleTowerBattleSalon_CherylWalkSouthToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_CHERYL, BattleTowerBattleSalon_CherylWalkWestToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_05A1:
SetVar VAR_MAP_LOCAL_0, 2
BattleTowerBattleSalon_MiraWalkToAttendant:
SetVar VAR_MAP_LOCAL_0, BATTLE_TOWER_BATTLE_SALON_MIRA
GetPlayerMapPos VAR_0x8000, VAR_0x8001
GoToIfEq VAR_0x8000, 4, _05C2
GoTo _05D4
GoToIfEq VAR_0x8000, 4, BattleTowerBattleSalon_MiraWalkEastToAttendant
GoTo BattleTowerBattleSalon_MiraWalkNorthToAttendant
End
_05C2:
ApplyMovement 2, _0758
BattleTowerBattleSalon_MiraWalkEastToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_MIRA, BattleTowerBattleSalon_MiraWalkEastToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_05D4:
ApplyMovement 2, _0768
BattleTowerBattleSalon_MiraWalkNorthToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_MIRA, BattleTowerBattleSalon_MiraWalkNorthToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_05E6:
SetVar VAR_MAP_LOCAL_0, 3
BattleTowerBattleSalon_RileyWalkToAttendant:
SetVar VAR_MAP_LOCAL_0, BATTLE_TOWER_BATTLE_SALON_RILEY
GetPlayerMapPos VAR_0x8000, VAR_0x8001
GoToIfEq VAR_0x8001, 7, _0607
GoTo _0619
GoToIfEq VAR_0x8001, 7, BattleTowerBattleSalon_RileyWalkWestToAttendant
GoTo BattleTowerBattleSalon_RileyWalkNorthToAttendant
End
_0607:
ApplyMovement 3, _0774
BattleTowerBattleSalon_RileyWalkWestToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_RILEY, BattleTowerBattleSalon_RileyWalkWestToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_0619:
ApplyMovement 3, _0784
BattleTowerBattleSalon_RileyWalkNorthToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_RILEY, BattleTowerBattleSalon_RileyWalkNorthToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_062B:
SetVar VAR_MAP_LOCAL_0, 4
BattleTowerBattleSalon_MarleyWalkToAttendant:
SetVar VAR_MAP_LOCAL_0, BATTLE_TOWER_BATTLE_SALON_MARLEY
GetPlayerMapPos VAR_0x8000, VAR_0x8001
GoToIfEq VAR_0x8001, 9, _064C
GoTo _065E
GoToIfEq VAR_0x8001, 9, BattleTowerBattleSalon_MarleyWalkSouthToAttendant
GoTo BattleTowerBattleSalon_MarleyWalkNorthToAttendant
End
_064C:
ApplyMovement 4, _0790
BattleTowerBattleSalon_MarleyWalkSouthToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_MARLEY, BattleTowerBattleSalon_MarleyWalkSouthToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_065E:
ApplyMovement 4, _07A4
BattleTowerBattleSalon_MarleyWalkNorthToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_MARLEY, BattleTowerBattleSalon_MarleyWalkNorthToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_0670:
SetVar VAR_MAP_LOCAL_0, 5
BattleTowerBattleSalon_BuckWalkToAttendant:
SetVar VAR_MAP_LOCAL_0, BATTLE_TOWER_BATTLE_SALON_BUCK
GetPlayerMapPos VAR_0x8000, VAR_0x8001
GoToIfEq VAR_0x8000, 8, _0691
GoTo _06A3
GoToIfEq VAR_0x8000, 8, BattleTowerBattleSalon_BuckWalkWestToAttendant
GoTo BattleTowerBattleSalon_BuckWalkEastToAttendant
End
_0691:
ApplyMovement 5, _07B8
BattleTowerBattleSalon_BuckWalkWestToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_BUCK, BattleTowerBattleSalon_BuckWalkWestToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
_06A3:
ApplyMovement 5, _07C8
BattleTowerBattleSalon_BuckWalkEastToAttendant:
ApplyMovement BATTLE_TOWER_BATTLE_SALON_BUCK, BattleTowerBattleSalon_BuckWalkEastToAttendantMovement
WaitMovement
GoTo _0500
GoTo BattleTowerBattleSalon_PartnerEnterBattleRoom
End
.balign 4, 0
_06B8:
BattleTowerBattleSalon_PlayerEnterBattleSalonMovement:
WalkNormalSouth 2
EndMovement
.balign 4, 0
_06C0:
BattleTowerBattleSalon_PlayerFaceNorthMovement:
FaceNorth
EndMovement
.balign 4, 0
_06C8:
BattleTowerBattleSalon_AttendantEnterBattleSalonMovement:
WalkNormalSouth 2
WalkNormalWest
FaceEast
EndMovement
.balign 4, 0
_06D8:
BattleTowerBattleSalon_AttendantBlockDoorMovement:
WalkNormalEast
FaceSouth
EndMovement
.balign 4, 0
_06E4:
BattleTowerBattleSalon_AttendantMoveAwayMovement:
FaceSouth
WalkFastWest
FaceEast
EndMovement
.balign 4, 0
_06F4:
BattleTowerBattleSalon_AttendantMoveBackMovement:
WalkFastEast
FaceSouth
EndMovement
.balign 4, 0
_0700:
BattleTowerBattleSalon_PlayerEnterBattleRoomMovement:
WalkNormalNorth 2
SetInvisible
EndMovement
.balign 4, 0
_070C:
BattleTowerBattleSalon_AttendantEnterBattleRoomMovement:
WalkNormalNorth
SetInvisible
EndMovement
.balign 4, 0
_0718:
BattleTowerBattleSalon_PartnerFaceNorthMovement:
FaceNorth
EndMovement
.balign 4, 0
_0720:
BattleTowerBattleSalon_PartnerEnterBattleRoomMovement:
WalkFastNorth 2
SetInvisible
EndMovement
.balign 4, 0
_072C:
BattleTowerBattleSalon_CherylWalkSouthToAttendantMovement:
WalkFastSouth
WalkFastWest 3
WalkFastNorth 7
@ -507,7 +508,7 @@ _072C:
EndMovement
.balign 4, 0
_0740:
BattleTowerBattleSalon_CherylWalkWestToAttendantMovement:
WalkFastWest
WalkFastNorth
WalkFastWest 2
@ -516,33 +517,33 @@ _0740:
EndMovement
.balign 4, 0
_0758:
BattleTowerBattleSalon_MiraWalkEastToAttendantMovement:
WalkFastEast
WalkFastNorth 2
WalkFastEast 3
EndMovement
.balign 4, 0
_0768:
BattleTowerBattleSalon_MiraWalkNorthToAttendantMovement:
WalkFastNorth 2
WalkFastEast 4
EndMovement
.balign 4, 0
_0774:
BattleTowerBattleSalon_RileyWalkWestToAttendantMovement:
WalkFastWest
WalkFastNorth 4
WalkFastWest 2
EndMovement
.balign 4, 0
_0784:
BattleTowerBattleSalon_RileyWalkNorthToAttendantMovement:
WalkFastNorth 4
WalkFastWest 3
EndMovement
.balign 4, 0
_0790:
BattleTowerBattleSalon_MarleyWalkSouthToAttendantMovement:
WalkFastSouth
WalkFastEast 4
WalkFastNorth 7
@ -550,7 +551,7 @@ _0790:
EndMovement
.balign 4, 0
_07A4:
BattleTowerBattleSalon_MarleyWalkNorthToAttendantMovement:
WalkFastNorth
WalkFastEast 4
WalkFastNorth 5
@ -558,14 +559,14 @@ _07A4:
EndMovement
.balign 4, 0
_07B8:
BattleTowerBattleSalon_BuckWalkWestToAttendantMovement:
WalkFastWest
WalkFastNorth 5
WalkFastEast 2
EndMovement
.balign 4, 0
_07C8:
BattleTowerBattleSalon_BuckWalkEastToAttendantMovement:
WalkFastEast 3
WalkFastNorth 5
WalkFastWest 2

View File

@ -1,27 +1,28 @@
#include "macros/scrcmd.inc"
#include "res/field/events/events_battle_tower_corridor_multi.h"
#include "constants/map_object.h"
ScriptEntry _000E
ScriptEntry BattleTowerCorridorMulti_SetPlayerGraphics
ScriptEntry _0068
ScriptEntry _008D
ScriptEntry BattleTowerCorridorMulti_EnterCorridorAndGoToBattleRoom
ScriptEntryEnd
_000E:
GoToIfEq VAR_UNK_0x40DD, 0, _0048
BattleTowerCorridorMulti_SetPlayerGraphics:
GoToIfEq VAR_UNK_0x40DD, 0, BattleTowerCorridorMulti_DontSetPlayerGraphics
GetCurNetID VAR_MAP_LOCAL_0
GoToIfEq VAR_MAP_LOCAL_0, 1, _004A
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 0, VAR_MAP_LOCAL_0
GoToIfEq VAR_MAP_LOCAL_0, 1, BattleTowerCorridorMulti_SetPlayer2Graphics
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PLAYER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_0, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 1, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_1, VAR_MAP_LOCAL_0
_0048:
BattleTowerCorridorMulti_DontSetPlayerGraphics:
End
_004A:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 0, VAR_MAP_LOCAL_0
BattleTowerCorridorMulti_SetPlayer2Graphics:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PLAYER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_1, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 1, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_0, VAR_MAP_LOCAL_0
End
@ -33,14 +34,14 @@ _0068:
_007F:
HideObject LOCALID_PLAYER
ScrCmd_06B 8, 0, 0
MoveCamera 8, 0, 0
Return
_008D:
BattleTowerCorridorMulti_EnterCorridorAndGoToBattleRoom:
LockAll
Call _00C9
Call _012B
Call _014F
Call BattleTowerCorridorMulti_PlayEnterCorridorAnimation
Call BattleTowerCorridorMulti_ApplyWalkToBattleRoomMovement
Call BattleTowerCorridorMulti_ApplyEnterBattleRoomMovement
FadeScreenOut
WaitFadeScreen
Warp MAP_HEADER_BATTLE_TOWER_MULTI_BATTLE_ROOM, 0, 7, 5, 0
@ -49,20 +50,20 @@ _008D:
ReleaseAll
End
_00C9:
BattleTowerCorridorMulti_PlayEnterCorridorAnimation:
LoadDoorAnimation 0, 0, 3, 2, ANIMATION_TAG_DOOR_1
LoadDoorAnimation 0, 0, 14, 2, ANIMATION_TAG_DOOR_2
PlayDoorOpenAnimation ANIMATION_TAG_DOOR_1
PlayDoorOpenAnimation ANIMATION_TAG_DOOR_2
WaitForAnimation ANIMATION_TAG_DOOR_1
WaitForAnimation ANIMATION_TAG_DOOR_2
ApplyMovement 0, _0174
ApplyMovement 1, _0174
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_LEFT_ATTENDANT, BattleTowerCorridorMulti_AttendantEnterCorridorMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_RIGHT_ATTENDANT, BattleTowerCorridorMulti_AttendantEnterCorridorMovement
WaitMovement
ShowObject 2
ShowObject 3
ApplyMovement 2, _0180
ApplyMovement 3, _0180
ShowObject BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_LEADER
ShowObject BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_PARTNER
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_LEADER, BattleTowerCorridorMulti_PlayerEnterCorridorMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_PARTNER, BattleTowerCorridorMulti_PlayerEnterCorridorMovement
WaitMovement
PlayDoorCloseAnimation ANIMATION_TAG_DOOR_1
PlayDoorCloseAnimation ANIMATION_TAG_DOOR_2
@ -72,53 +73,53 @@ _00C9:
UnloadAnimation ANIMATION_TAG_DOOR_2
Return
_012B:
ApplyMovement 0, _01AC
ApplyMovement 2, _0188
ApplyMovement 1, _01CC
ApplyMovement 3, _0194
BattleTowerCorridorMulti_ApplyWalkToBattleRoomMovement:
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_LEFT_ATTENDANT, BattleTowerCorridorMulti_LeftAttendantWalkToBattleRoomMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_LEADER, BattleTowerCorridorMulti_PlayerLeaderWalkToBattleRoomMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_RIGHT_ATTENDANT, BattleTowerCorridorMulti_RightAttendantWalkToBattleRoomMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_PARTNER, BattleTowerCorridorMulti_PlayerFriendWalkToBattleRoomMovement
WaitMovement
Return
_014F:
ApplyMovement 0, _01EC
ApplyMovement 1, _01EC
ApplyMovement 2, _01A0
ApplyMovement 3, _01A0
BattleTowerCorridorMulti_ApplyEnterBattleRoomMovement:
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_LEFT_ATTENDANT, BattleTowerCorridorMulti_AttendantEnterBattleRoomMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_RIGHT_ATTENDANT, BattleTowerCorridorMulti_AttendantEnterBattleRoomMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_LEADER, BattleTowerCorridorMulti_PlayerEnterBattleRoomMovement
ApplyMovement BATTLE_TOWER_CORRIDOR_MULTI_PLAYER_PARTNER, BattleTowerCorridorMulti_PlayerEnterBattleRoomMovement
WaitMovement
Return
.balign 4, 0
_0174:
BattleTowerCorridorMulti_AttendantEnterCorridorMovement:
WalkNormalSouth 3
FaceNorth
EndMovement
.balign 4, 0
_0180:
BattleTowerCorridorMulti_PlayerEnterCorridorMovement:
WalkNormalSouth 2
EndMovement
.balign 4, 0
_0188:
BattleTowerCorridorMulti_PlayerLeaderWalkToBattleRoomMovement:
WalkNormalSouth
WalkNormalEast 5
EndMovement
.balign 4, 0
_0194:
BattleTowerCorridorMulti_PlayerFriendWalkToBattleRoomMovement:
WalkNormalSouth
WalkNormalWest 5
EndMovement
.balign 4, 0
_01A0:
BattleTowerCorridorMulti_PlayerEnterBattleRoomMovement:
WalkNormalNorth 2
SetInvisible
EndMovement
.balign 4, 0
_01AC:
BattleTowerCorridorMulti_LeftAttendantWalkToBattleRoomMovement:
WalkNormalEast 5
WalkNormalNorth
Delay8
@ -129,7 +130,7 @@ _01AC:
EndMovement
.balign 4, 0
_01CC:
BattleTowerCorridorMulti_RightAttendantWalkToBattleRoomMovement:
WalkNormalWest 5
WalkNormalNorth
Delay8
@ -140,7 +141,7 @@ _01CC:
EndMovement
.balign 4, 0
_01EC:
BattleTowerCorridorMulti_AttendantEnterBattleRoomMovement:
WalkNormalNorth
SetInvisible
EndMovement

View File

@ -1,4 +1,5 @@
#include "macros/scrcmd.inc"
#include "generated/object_events.h"
ScriptEntry BattleTowerElevator_Init
@ -10,30 +11,30 @@
BattleTowerElevator_Init:
CallIfNe VAR_UNK_0x40DB, 0, _008A
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_CHALLENGE_MODE, 0, VAR_MAP_LOCAL_A
Call _008E
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_MULTI, _009E
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_LINK_MULTI, _009E
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_SINGLE, _008E
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_DOUBLE, _008E
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_WIFI, _0096
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_5, _0096
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_6, _0096
Call BattleTowerElevator_SetSingleAttendantGraphics
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_MULTI, BattleTowerElevator_SetMultiAttendantGraphics
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_LINK_MULTI, BattleTowerElevator_SetMultiAttendantGraphics
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_SINGLE, BattleTowerElevator_SetSingleAttendantGraphics
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_DOUBLE, BattleTowerElevator_SetSingleAttendantGraphics
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_WIFI, BattleTowerElevator_SetWiFiPlazaAttendantGraphics
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_5, BattleTowerElevator_SetWiFiPlazaAttendantGraphics
CallIfEq VAR_MAP_LOCAL_A, BATTLE_TOWER_MODE_6, BattleTowerElevator_SetWiFiPlazaAttendantGraphics
End
_008A:
HidePoketch
Return
_008E:
SetVar VAR_OBJ_GFX_ID_A, 231
BattleTowerElevator_SetSingleAttendantGraphics:
SetVar VAR_OBJ_GFX_ID_A, OBJ_EVENT_GFX_FRONTIER_SINGLE_ATTENDANT
Return
_0096:
SetVar VAR_OBJ_GFX_ID_A, 235
BattleTowerElevator_SetWiFiPlazaAttendantGraphics:
SetVar VAR_OBJ_GFX_ID_A, OBJ_EVENT_GFX_WIFI_PLAZA_ATTENDANT_F
Return
_009E:
SetVar VAR_OBJ_GFX_ID_A, 232
BattleTowerElevator_SetMultiAttendantGraphics:
SetVar VAR_OBJ_GFX_ID_A, OBJ_EVENT_GFX_FRONTIER_MULTI_ATTENDANT
Return
BattleTowerElevator_BattleRoomCheckWiFi:
@ -42,7 +43,7 @@ BattleTowerElevator_BattleRoomCheckWiFi:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_CHALLENGE_MODE, 0, VAR_RESULT
GoToIfEq VAR_RESULT, BATTLE_TOWER_MODE_WIFI, BattleTowerElevator_WiFiBattleRoom
GoToIfEq VAR_RESULT, BATTLE_TOWER_MODE_5, BattleTowerElevator_WiFiBattleRoom
ScrCmd_1F8
WaitForTransition
ScrCmd_2C4 5
ReturnToField
Warp MAP_HEADER_BATTLE_TOWER, 0, 15, 6, 0
@ -51,7 +52,7 @@ BattleTowerElevator_BattleRoomCheckWiFi:
BattleTowerElevator_MultiBattleRoom:
FadeScreenOut
WaitFadeScreen
ScrCmd_1F8
WaitForTransition
ScrCmd_2C4 6
ReturnToField
Warp MAP_HEADER_BATTLE_TOWER, 0, 11, 6, 0
@ -136,7 +137,7 @@ BattleTowerElevator_PlayerExitMovement:
EndMovement
BattleTowerElevator_WiFiBattleRoom:
ScrCmd_1F8
WaitForTransition
ScrCmd_2C4 5
ReturnToField
Warp MAP_HEADER_BATTLE_TOWER, 0, 19, 6, 0

View File

@ -15,17 +15,17 @@ _0012:
SetFlag FLAG_UNK_0x01EB
GetCurNetID VAR_MAP_LOCAL_0
GoToIfEq VAR_MAP_LOCAL_0, 1, _0056
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 0, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PLAYER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_0, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 1, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_1, VAR_MAP_LOCAL_0
_0054:
End
_0056:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 0, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PLAYER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_1, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_55, 1, VAR_MAP_LOCAL_0
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM, BT_PARAM_PARTNER_GRAPHICS_ID, VAR_MAP_LOCAL_0
SetVar VAR_OBJ_GFX_ID_0, VAR_MAP_LOCAL_0
End
@ -37,7 +37,7 @@ _008E:
_0090:
HideObject LOCALID_PLAYER
ScrCmd_06B 8, 0, 0
MoveCamera 8, 0, 0
Return
_009E:
@ -284,9 +284,9 @@ _04A1:
Return
_04C5:
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_41, 0, VAR_RESULT
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_OPPONENT_OBJECT_ID, 0, VAR_RESULT
SetVar VAR_OBJ_GFX_ID_2, VAR_RESULT
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_UNK_41, 1, VAR_RESULT
CallBattleTowerFunction BATTLE_TOWER_FUNCTION_GET_OPPONENT_OBJECT_ID, 1, VAR_RESULT
SetVar VAR_OBJ_GFX_ID_3, VAR_RESULT
ClearFlag FLAG_UNK_0x01EA
ClearFlag FLAG_UNK_0x01EB

View File

@ -58,23 +58,23 @@ _00F9:
Return
_00FF:
CallIfUnset FLAG_UNK_0x00E3, _00F9
CallIfUnset FLAG_TRAVELED_WITH_CHERYL, _00F9
Return
_010C:
CallIfUnset FLAG_UNK_0x00E5, _00F9
CallIfUnset FLAG_TRAVELED_WITH_RILEY, _00F9
Return
_0119:
CallIfUnset FLAG_UNK_0x00E6, _00F9
CallIfUnset FLAG_TRAVELED_WITH_MARLEY, _00F9
Return
_0126:
CallIfUnset FLAG_UNK_0x00E7, _00F9
CallIfUnset FLAG_BUCK_LEFT_BATTLEGROUND, _00F9
Return
_0133:
CallIfUnset FLAG_UNK_0x00E4, _00F9
CallIfUnset FLAG_TRAVELED_WITH_MIRA, _00F9
Return
_0140:
@ -115,7 +115,7 @@ _0183:
CallIfEq VAR_0x8005, 9, _01FD
PlayFanfare SEQ_SE_DP_KAIDAN2
RemoveObject 1
SetFlag FLAG_UNK_0x00E7
SetFlag FLAG_BUCK_LEFT_BATTLEGROUND
SetFlag FLAG_UNK_0x01D6
ReleaseAll
End

View File

@ -323,7 +323,7 @@ _0457:
FadeOutBGM 0, 10
FadeScreenOut
WaitFadeScreen
ScrCmd_1F8
WaitForTransition
BlackOutFromBattle2
End

View File

@ -17,7 +17,7 @@
ScriptEntryEnd
_0032:
GoToIfUnset FLAG_UNK_0x00E3, _003F
GoToIfUnset FLAG_TRAVELED_WITH_CHERYL, _003F
End
_003F:
@ -209,7 +209,7 @@ _02CB:
ClearHasPartner
RemoveObject 0
WaitFanfare SEQ_SE_DP_KAIDAN2
SetFlag FLAG_UNK_0x00E3
SetFlag FLAG_TRAVELED_WITH_CHERYL
SetVar VAR_UNK_0x40B1, 2
ReleaseAll
End

View File

@ -16,7 +16,7 @@
_0026:
InitPersistedMapFeaturesForPlatformLift
GoToIfUnset FLAG_UNK_0x00E5, _0035
GoToIfUnset FLAG_TRAVELED_WITH_RILEY, _0035
End
_0035:
@ -264,7 +264,7 @@ _0366:
End
_0371:
SetFlag FLAG_UNK_0x00E5
SetFlag FLAG_TRAVELED_WITH_RILEY
SetVar VAR_UNK_0x4092, 2
Return

View File

@ -461,7 +461,7 @@ _069E:
End
_06A0:
ScrCmd_1F8
WaitForTransition
ScrCmd_0A3
ReturnToField
FadeScreenIn

View File

@ -224,7 +224,7 @@ _0328:
_0333:
FadeScreenOut
WaitFadeScreen
ScrCmd_1F8
WaitForTransition
ScrCmd_2A4 VAR_RESULT
GoToIfEq VAR_RESULT, 0, _035A
ScrCmd_0A3
@ -417,7 +417,7 @@ _0526:
Unk423_Unused:
FadeScreenOut
WaitFadeScreen
ScrCmd_1F8
WaitForTransition
ScrCmd_0B3 VAR_RESULT
SetVar VAR_0x8004, VAR_RESULT
ScrCmd_2F7 VAR_0x8004

View File

@ -9,7 +9,7 @@
ScriptEntryEnd
_0012:
GoToIfUnset FLAG_UNK_0x00E6, _001F
GoToIfUnset FLAG_TRAVELED_WITH_MARLEY, _001F
End
_001F:
@ -277,7 +277,7 @@ _0389:
_03A1:
RemoveObject 28
SetFlag FLAG_UNK_0x00E6
SetFlag FLAG_TRAVELED_WITH_MARLEY
SetVar VAR_UNK_0x4090, 2
ReleaseAll
End

View File

@ -10,7 +10,7 @@
_0012:
SetFlag FLAG_UNK_0x09D7
GoToIfUnset FLAG_UNK_0x00E4, _0023
GoToIfUnset FLAG_TRAVELED_WITH_MIRA, _0023
End
_0023:
@ -120,7 +120,7 @@ _016A:
_0182:
RemoveObject 4
SetFlag FLAG_UNK_0x00E4
SetFlag FLAG_TRAVELED_WITH_MIRA
SetVar VAR_UNK_0x4091, 2
ReleaseAll
End

View File

@ -66,7 +66,7 @@ _00D9:
WaitFadeScreen
SetVar VAR_MAP_LOCAL_3, 1
Warp 0x405C, 0, 5, 2, 1
ScrCmd_1F8
WaitForTransition
ScrCmd_0B3 VAR_RESULT
SetVar VAR_0x8004, VAR_RESULT
ScrCmd_2F7 VAR_0x8004

View File

@ -2,14 +2,14 @@
"key": 9314,
"messages": [
{
"id": "pl_msg_00000307_00000",
"id": "BattleTowerBattleSalon_Text_PleaseFindAPartner",
"en_US": [
"Please find a partner from the Trainers\n",
"that are gathered here.\r"
]
},
{
"id": "pl_msg_00000307_00001",
"id": "BattleTowerBattleSalon_Text_WouldYouLikeToQuit",
"en_US": [
"{STRVAR_1 3, 0, 0}, you have not found\n",
"a partner for your tag team.\r",
@ -18,7 +18,7 @@
]
},
{
"id": "pl_msg_00000307_00002",
"id": "BattleTowerBattleSalon_Text_ShowYouToMultiBattleRoom",
"en_US": [
"Thank you for choosing a partner.\r",
"I will now show you to your\n",
@ -26,7 +26,7 @@
]
},
{
"id": "pl_msg_00000307_00003",
"id": "BattleTowerBattleSalon_Text_RileyWouldYouLikeToTeamUp",
"en_US": [
"Riley: The partners I have now?\r",
"Well, my {STRVAR_1 0, 0, 0}s nasty with its\n",
@ -37,21 +37,21 @@
]
},
{
"id": "pl_msg_00000307_00004",
"id": "BattleTowerBattleSalon_Text_RileyDontTeamUp",
"en_US": [
"Riley: ...Oh, is that so?\n",
"Thats too bad."
]
},
{
"id": "pl_msg_00000307_00005",
"id": "BattleTowerBattleSalon_Text_RileyTeamUp",
"en_US": [
"Riley: Ahaha, thanks.\n",
"Ill be waiting for you.\r"
]
},
{
"id": "pl_msg_00000307_00006",
"id": "BattleTowerBattleSalon_Text_CherylWouldYouLikeToTeamUp",
"en_US": [
"Cheryl: I have {STRVAR_1 0, 0, 0} that\n",
"is very good with {STRVAR_1 6, 1, 0},\r",
@ -61,18 +61,18 @@
]
},
{
"id": "pl_msg_00000307_00007",
"id": "BattleTowerBattleSalon_Text_CherylDontTeamUp",
"en_US": [
"Cheryl: Oh...\n",
"Too bad..."
]
},
{
"id": "pl_msg_00000307_00008",
"id": "BattleTowerBattleSalon_Text_CherylTeamUp",
"en_US": "Cheryl: Ill go on ahead, then.\r"
},
{
"id": "pl_msg_00000307_00009",
"id": "BattleTowerBattleSalon_Text_BuckWouldYouLikeToTeamUp",
"en_US": [
"Buck: Yo, are you looking to team\n",
"up? Let me tell you what Ive got.\r",
@ -84,21 +84,21 @@
]
},
{
"id": "pl_msg_00000307_00010",
"id": "BattleTowerBattleSalon_Text_BuckDontTeamUp",
"en_US": [
"Buck: Huh? What?\n",
"Thats pretty cold of you!"
]
},
{
"id": "pl_msg_00000307_00011",
"id": "BattleTowerBattleSalon_Text_BuckTeamUp",
"en_US": [
"Buck: Hehehe! Good choice!\n",
"Theres no problem when Im around!\r"
]
},
{
"id": "pl_msg_00000307_00012",
"id": "BattleTowerBattleSalon_Text_MarleyWouldYouLikeToTeamUp",
"en_US": [
"Marley: ...My {STRVAR_1 0, 0, 0} uses\n",
"{STRVAR_1 6, 1, 0} well...\r",
@ -109,15 +109,15 @@
]
},
{
"id": "pl_msg_00000307_00013",
"id": "BattleTowerBattleSalon_Text_MarleyDontTeamUp",
"en_US": "Marley: ...Whatever..."
},
{
"id": "pl_msg_00000307_00014",
"id": "BattleTowerBattleSalon_Text_MarleyTeamUp",
"en_US": "Marley: ...Ill go ahead...\r"
},
{
"id": "pl_msg_00000307_00015",
"id": "BattleTowerBattleSalon_Text_MiraWouldYouLikeToTeamUp",
"en_US": [
"Mira: Hi, hi!\n",
"Im with my {STRVAR_1 0, 0, 0}!\f",
@ -129,14 +129,14 @@
]
},
{
"id": "pl_msg_00000307_00016",
"id": "BattleTowerBattleSalon_Text_MiraDontTeamUp",
"en_US": [
"Mira: Oh, OK.\n",
"Lets go another time!"
]
},
{
"id": "pl_msg_00000307_00017",
"id": "BattleTowerBattleSalon_Text_MiraTeamUp",
"en_US": [
"Mira: OK! Ill wait for you!\n",
"{STRVAR_1 3, 0, 0}, dont be long!\r"

View File

@ -1,14 +1,20 @@
pl_btdtr_order = files('frontier_trainers.order')
pl_btdpm_order = files('frontier_pokemon.order')
frontier_trainer_consts = fs.read(pl_btdtr_order).splitlines()
frontier_trainer_consts = fs.read(frontier_trainers_txt).splitlines()
frontier_trainer_stems = []
foreach trainer : frontier_trainer_consts
# `substring` here strips the `FRONTIER_TRAINER_` prefix
trainer_stem = trainer.substring(17).to_lower()
frontier_trainer_stems += trainer_stem
endforeach
frontier_pokemon_consts = fs.read(pl_btdpm_order).splitlines()
frontier_trainer_data_dir = meson.current_source_dir() / 'data'
frontier_pokemon_data_dir = meson.current_source_dir() / 'pokemon'
frontier_env = environment()
frontier_env.append('TRAINERS', frontier_trainer_consts, separator: ';')
frontier_env.append('TRAINERS', frontier_trainer_stems, separator: ';')
frontier_env.append('POKEMONS', frontier_pokemon_consts, separator: ';')
datagen_frontier_out = custom_target('datagen_frontier_out',

View File

@ -405,9 +405,9 @@ u8 ov104_0222E240(u16 param0, u16 param1)
return 1;
}
void ov104_0222E278(UnkStruct_ov104_0223A348 *param0, u16 param1, int heapID, int param3)
void ov104_0222E278(FrontierDataDTO *param0, u16 param1, int heapID, int param3)
{
Heap_Free(ov104_0222DD04(&param0->unk_00, param1, heapID, param3));
Heap_Free(ov104_0222DD04(&param0->trDataDTO, param1, heapID, param3));
return;
}

View File

@ -505,7 +505,7 @@ BOOL ov104_0223397C(UnkStruct_ov104_0222E930 *param0)
return 0;
}
v0 = v1->unk_34[v3].unk_00.unk_18;
v0 = v1->unk_34[v3].trDataDTO.unk_18;
ov104_022330FC(param0, v0);
return 1;

View File

@ -376,7 +376,7 @@ BOOL ov104_02234D18(UnkStruct_ov104_0222E930 *param0)
return 0;
}
v0 = v1->unk_40[v3].unk_00.unk_18;
v0 = v1->unk_40[v3].trDataDTO.unk_18;
ov104_022330FC(param0, v0);
return 1;

View File

@ -633,7 +633,7 @@ BOOL ov104_0223617C(UnkStruct_ov104_0222E930 *param0)
return 0;
}
v0 = v1->unk_4C[v3].unk_00.unk_18;
v0 = v1->unk_4C[v3].trDataDTO.unk_18;
ov104_022330FC(param0, v0);
return 1;

View File

@ -648,7 +648,7 @@ BOOL ov104_02237D48(UnkStruct_ov104_0222E930 *param0)
return 0;
}
v0 = v1->unk_F4[v3].unk_00.unk_18;
v0 = v1->unk_F4[v3].trDataDTO.unk_18;
ov104_022330FC(param0, v0);
return 1;

View File

@ -2,10 +2,13 @@
#include <nitro/code16.h>
#include <string.h>
#include "constants/battle_tower.h"
#include "generated/battle_tower_modes.h"
#include "generated/game_records.h"
#include "generated/object_events.h"
#include "struct_decls/struct_0202440C_decl.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "overlay104/ov104_0222E930.h"
#include "overlay104/ov104_0222FBE4.h"
@ -124,36 +127,36 @@ BOOL ov104_02239130(UnkStruct_ov104_0222E930 *param0)
return 0;
}
static u16 ov104_0223927C(BattleTower *battleTower, u8 param1)
static u16 ov104_0223927C(BattleTower *battleTower, u8 param)
{
static const u16 v0[] = {
0x8d,
0x91,
0x8e,
0x8f,
0x90
static const u16 partnerGraphics[] = {
OBJ_EVENT_GFX_CHERYL,
OBJ_EVENT_GFX_MIRA,
OBJ_EVENT_GFX_RILEY,
OBJ_EVENT_GFX_MARLEY,
OBJ_EVENT_GFX_BUCK
};
if (param1 == 2) {
return battleTower->unk_10_5;
if (param == BT_PARAM_PARTNER_ID) {
return battleTower->partnerID;
}
if (param1 == 1) {
if (battleTower->challengeMode == 2) {
return v0[battleTower->unk_10_5];
if (param == BT_PARAM_PARTNER_GRAPHICS_ID) {
if (battleTower->challengeMode == BATTLE_TOWER_MODE_MULTI) {
return partnerGraphics[battleTower->partnerID];
} else {
if (battleTower->unk_12) {
return 0x61;
if (battleTower->partnerGender) {
return OBJ_EVENT_GFX_PLAYER_F;
} else {
return 0x0;
return OBJ_EVENT_GFX_PLAYER_M;
}
}
}
if (battleTower->unk_11) {
return 0x61;
if (battleTower->playerGender) {
return OBJ_EVENT_GFX_PLAYER_F;
} else {
return 0x0;
return OBJ_EVENT_GFX_PLAYER_M;
}
}
@ -171,7 +174,7 @@ BOOL ov104_022392C0(UnkStruct_ov104_0222E930 *param0)
return 0;
}
v1 = battleTower->unk_78[v4].unk_00.unk_18;
v1 = battleTower->unk_78[v4].trDataDTO.unk_18;
ov104_0223310C(param0, v1, ov104_0223A790(battleTower->challengeMode));
return 1;

View File

@ -1,7 +1,7 @@
#include <nitro.h>
#include <string.h>
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "overlay104/ov104_0222DCE0.h"
#include "overlay104/ov104_0223A0C4.h"
@ -30,8 +30,8 @@ void ov104_022394A4(BattleTower *battleTower, SaveData *saveData)
u16 v2[2];
for (int v0 = 0; v0 < battleTower->partySize; v0++) {
v1[v0] = battleTower->unk_78[0].unk_30[v0].species;
v2[v0] = battleTower->unk_78[0].unk_30[v0].item;
v1[v0] = battleTower->unk_78[0].monDataDTO[v0].species;
v2[v0] = battleTower->unk_78[0].monDataDTO[v0].item;
}
ov104_0223A0C4(battleTower, &(battleTower->unk_78[1]), battleTower->unk_3E[(battleTower->unk_0C - 1) * 2 + 1], battleTower->partySize, v1, v2, NULL, battleTower->heapID);
@ -46,7 +46,7 @@ void ov104_022394A4(BattleTower *battleTower, SaveData *saveData)
u16 ov104_02239588(BattleTower *battleTower, u16 param1)
{
return ov104_0222E10C(battleTower->unk_78[param1].unk_00.trainerType);
return ov104_0222E10C(battleTower->unk_78[param1].trDataDTO.trainerType);
}
void ov104_022395A0(BattleTower *battleTower, u16 param1)

View File

@ -2,8 +2,10 @@
#include <nitro/code16.h>
#include <string.h>
#include "constants/battle_tower.h"
#include "struct_decls/struct_0202D750_decl.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0209BBA4.h"
#include "overlay104/ov104_0222DCE0.h"
@ -339,8 +341,8 @@ BOOL ov104_02239B14(UnkStruct_ov104_0222E930 *param0)
battleTower->unk_16[0] = v4.unk_86[0];
battleTower->unk_16[1] = v4.unk_86[1];
battleTower->unk_12 = v4.unk_58;
battleTower->unk_10_5 = 5 + battleTower->unk_12;
battleTower->partnerGender = v4.unk_58;
battleTower->partnerID = BT_PARTNERS_COUNT + battleTower->partnerGender;
if (CommSys_CurNetId() == 0) {
sub_0204A4C8(battleTower, v2->saveData);

View File

@ -7,8 +7,8 @@
#include "generated/species_data_params.h"
#include "struct_defs/battle_frontier_pokemon_data.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0202D764.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/struct_0204B404.h"
#include "overlay104/ov104_0222DCE0.h"
@ -624,7 +624,7 @@ static const UnkStruct_ov104_0223FCB4 Unk_ov104_0223FCB4[] = {
};
void FieldBattleDTO_CopyPlayerInfoToTrainerData(FieldBattleDTO *param0);
void ov104_0223A30C(SaveData *saveData, UnkStruct_ov104_0223A348 *param1, const u8 param2);
void ov104_0223A30C(SaveData *saveData, FrontierDataDTO *param1, const u8 param2);
FieldBattleDTO *ov104_0223A580(BattleTower *battleTower, UnkStruct_ov104_02230BE4 *param1);
void ov104_0223A734(BattleTower *battleTower, u16 param1);
u16 ov104_0223A750(BattleTower *battleTower, const u16 *param1);
@ -632,17 +632,17 @@ int ov104_0223A768(u8 param0);
int ov104_0223A77C(u8 param0);
int ov104_0223A790(u8 param0);
static BOOL ov104_0223A118(BattleTower *battleTower, BattleFrontierTrainerData *param1, u16 param2, FrontierPokemonDataDTO *param3, u8 param4, u16 *param5, u16 *param6, UnkStruct_0204B404 *param7, int param8);
static void ov104_0223A348(UnkStruct_ov104_0223A348 *param0, const u8 param1);
static void ov104_0223A348(FrontierDataDTO *param0, const u8 param1);
static u32 ov104_0223A3A8(BattleTower *battleTower, FrontierPokemonDataDTO *param1, u16 param2, u32 param3, u32 param4, u8 param5, u8 param6, BOOL param7, int param8);
static u32 BattleTower_GetBattleTypeFromChallengeMode(u8 challengeMode);
static void ov104_0223A6AC(FieldBattleDTO *param0, UnkStruct_ov104_0223A348 *param1, int param2, int param3, int param4);
static void ov104_0223A6AC(FieldBattleDTO *param0, FrontierDataDTO *param1, int param2, int param3, int param4);
static int ov104_0223A7AC(u8 param0);
BOOL ov104_0223A0C4(BattleTower *battleTower, UnkStruct_ov104_0223A348 *param1, u16 param2, int param3, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID)
BOOL ov104_0223A0C4(BattleTower *battleTower, FrontierDataDTO *param1, u16 param2, int param3, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID)
{
BOOL v0 = 0;
BattleFrontierTrainerData *v1 = ov104_0222DD04(&param1->unk_00, param2, heapID, ov104_0223A77C(battleTower->challengeMode));
v0 = ov104_0223A118(battleTower, v1, param2, &param1->unk_30[0], param3, param4, param5, param6, heapID);
BattleFrontierTrainerData *v1 = ov104_0222DD04(&param1->trDataDTO, param2, heapID, ov104_0223A77C(battleTower->challengeMode));
v0 = ov104_0223A118(battleTower, v1, param2, &param1->monDataDTO[0], param3, param4, param5, param6, heapID);
Heap_Free(v1);
@ -731,7 +731,7 @@ static BOOL ov104_0223A118(BattleTower *battleTower, BattleFrontierTrainerData *
v8++;
}
v2 = sub_0204AE84(param2);
v2 = BattleTower_GetIVsFromTrainerID(param2);
v4 = (sub_0204AEC0(battleTower) | (sub_0204AEC0(battleTower) << 16));
if (v9 >= 50) {
@ -756,9 +756,9 @@ static BOOL ov104_0223A118(BattleTower *battleTower, BattleFrontierTrainerData *
return v10;
}
void ov104_0223A30C(SaveData *saveData, UnkStruct_ov104_0223A348 *param1, const u8 param2)
void ov104_0223A30C(SaveData *saveData, FrontierDataDTO *param1, const u8 param2)
{
MI_CpuClear8(param1, sizeof(UnkStruct_ov104_0223A348));
MI_CpuClear8(param1, sizeof(FrontierDataDTO));
UnkStruct_0202D764 *v1 = sub_0202D764(saveData);
@ -770,20 +770,20 @@ void ov104_0223A30C(SaveData *saveData, UnkStruct_ov104_0223A348 *param1, const
sub_0202D63C(v1, param1, param2);
}
static void ov104_0223A348(UnkStruct_ov104_0223A348 *param0, const u8 param1)
static void ov104_0223A348(FrontierDataDTO *param0, const u8 param1)
{
int v0;
MI_CpuClear8(param0, sizeof(UnkStruct_ov104_0223A348));
MI_CpuClear8(param0, sizeof(FrontierDataDTO));
const FrontierTrainerDataDTO *v1 = &(Unk_ov104_0223FCE0[param1]);
const FrontierPokemonDataDTO *v2 = Unk_ov104_0223FE30;
const UnkStruct_ov104_0223FCB4 *v3 = &(Unk_ov104_0223FCB4[param1]);
MI_CpuCopy8(v1, &param0->unk_00, sizeof(FrontierTrainerDataDTO));
param0->unk_00.unk_06 = v3->unk_00;
MI_CpuCopy8(v1, &param0->trDataDTO, sizeof(FrontierTrainerDataDTO));
param0->trDataDTO.unk_06 = v3->unk_00;
for (v0 = 0; v0 < 4; v0++) {
MI_CpuCopy8(&(v2[v3->unk_02[v0]]), &(param0->unk_30[v0]), sizeof(FrontierPokemonDataDTO));
MI_CpuCopy8(&(v2[v3->unk_02[v0]]), &(param0->monDataDTO[v0]), sizeof(FrontierPokemonDataDTO));
}
}
@ -926,7 +926,7 @@ FieldBattleDTO *ov104_0223A580(BattleTower *battleTower, UnkStruct_ov104_02230BE
switch (battleTower->challengeMode) {
case 2:
ov104_0223A6AC(v3, &(battleTower->unk_298[battleTower->unk_10_5]), battleTower->partySize, BATTLER_PLAYER_2, battleTower->heapID);
ov104_0223A6AC(v3, &(battleTower->partnersDataDTO[battleTower->partnerID]), battleTower->partySize, BATTLER_PLAYER_2, battleTower->heapID);
// fall through
case 3:
case 6:
@ -939,13 +939,13 @@ FieldBattleDTO *ov104_0223A580(BattleTower *battleTower, UnkStruct_ov104_02230BE
return v3;
}
static void ov104_0223A6AC(FieldBattleDTO *param0, UnkStruct_ov104_0223A348 *param1, int param2, int battlerId, int heapID)
static void ov104_0223A6AC(FieldBattleDTO *param0, FrontierDataDTO *param1, int param2, int battlerId, int heapID)
{
ov104_0222E284(param0, &param1->unk_00, param2, battlerId, heapID);
ov104_0222E284(param0, &param1->trDataDTO, param2, battlerId, heapID);
Pokemon *mon = Pokemon_New(heapID);
for (int v0 = 0; v0 < param2; v0++) {
ov104_0222DF40(&param1->unk_30[v0], mon, 120);
ov104_0222DF40(&param1->monDataDTO[v0], mon, 120);
Party_AddPokemon(param0->parties[battlerId], mon);
}

View File

@ -36,6 +36,7 @@
#include "struct_decls/struct_0205E884_decl.h"
#include "struct_decls/struct_02061830_decl.h"
#include "struct_decls/struct_02061AB4_decl.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/choose_starter_data.h"
#include "struct_defs/daycare.h"
#include "struct_defs/mail.h"
@ -43,7 +44,6 @@
#include "struct_defs/special_encounter.h"
#include "struct_defs/struct_0203E608.h"
#include "struct_defs/struct_02041DC8.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/underground.h"
#include "struct_defs/underground_record.h"
@ -352,7 +352,7 @@ static BOOL ScrCmd_FacePlayer(ScriptContext *ctx);
static BOOL ScrCmd_GetPlayerMapPos(ScriptContext *ctx);
static BOOL ScrCmd_Unused_06A(ScriptContext *ctx);
static BOOL ScrCmd_GetPlayerDir(ScriptContext *ctx);
static BOOL ScrCmd_06B(ScriptContext *ctx);
static BOOL ScrCmd_MoveCamera(ScriptContext *ctx);
static BOOL ScrCmd_06C(ScriptContext *ctx);
static BOOL ScrCmd_06D(ScriptContext *ctx);
static BOOL ScrCmd_GetMovementType(ScriptContext *ctx);
@ -367,7 +367,7 @@ static BOOL ScrCmd_Unused_09D(ScriptContext *ctx);
static BOOL ScrCmd_Unused_09E(ScriptContext *ctx);
static BOOL ScrCmd_Unused_09F(ScriptContext *ctx);
static BOOL ScrCmd_ReturnToField(ScriptContext *ctx);
static BOOL ScrCmd_1F8(ScriptContext *ctx);
static BOOL ScrCmd_WaitForTransition(ScriptContext *ctx);
static BOOL ScrCmd_0A2(ScriptContext *ctx);
static BOOL ScrCmd_0A3(ScriptContext *ctx);
static BOOL ScrCmd_Unused_0A4(ScriptContext *ctx);
@ -876,7 +876,7 @@ const ScrCmdFunc Unk_020EAC58[] = {
ScrCmd_FacePlayer,
ScrCmd_GetPlayerMapPos,
ScrCmd_Unused_06A,
ScrCmd_06B,
ScrCmd_MoveCamera,
ScrCmd_06C,
ScrCmd_06D,
ScrCmd_Unused_06E,
@ -1247,7 +1247,7 @@ const ScrCmdFunc Unk_020EAC58[] = {
ScrCmd_InitBattleTower,
ScrCmd_FreeBattleTower,
ScrCmd_CallBattleTowerFunction,
ScrCmd_1DE,
ScrCmd_GetBattleTowerPartnerSpeciesAndMove,
ScrCmd_1DF,
ScrCmd_1E0,
ScrCmd_1E1,
@ -1273,7 +1273,7 @@ const ScrCmdFunc Unk_020EAC58[] = {
ScrCmd_FindFossilAtThreshold,
ScrCmd_CountPartyMonsBelowLevelThreshold,
ScrCmd_SurvivePoison,
ScrCmd_1F8,
ScrCmd_WaitForTransition,
ScrCmd_Dummy1F9,
ScrCmd_MessageFromBankInstant,
ScrCmd_MessageFromBank,
@ -2100,7 +2100,7 @@ static BOOL ScrCmd_1FE(ScriptContext *ctx)
return FALSE;
}
u16 *v0 = battleTower->unk_78[v3].unk_00.unk_18;
u16 *v0 = battleTower->unk_78[v3].trDataDTO.unk_18;
if (v0[0] == 0xFFFF) {
MessageLoader *msgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0613, HEAP_ID_FIELD3);
@ -3326,21 +3326,21 @@ static BOOL ScrCmd_GetPlayerDir(ScriptContext *ctx)
return FALSE;
}
static BOOL ScrCmd_06B(ScriptContext *ctx)
static BOOL ScrCmd_MoveCamera(ScriptContext *ctx)
{
FieldSystem *fieldSystem = ctx->fieldSystem;
u16 v0 = ScriptContext_GetVar(ctx);
u16 v1 = ScriptContext_GetVar(ctx);
u16 v2 = ScriptContext_GetVar(ctx);
u16 x = ScriptContext_GetVar(ctx);
u16 y = ScriptContext_GetVar(ctx);
u16 z = ScriptContext_GetVar(ctx);
VecFx32 v3;
v3.x = FX32_CONST(v0);
v3.y = FX32_CONST(v1);
v3.z = FX32_CONST(v2);
VecFx32 pos;
pos.x = FX32_CONST(x);
pos.y = FX32_CONST(y);
pos.z = FX32_CONST(z);
sub_020630AC(Player_MapObject(ctx->fieldSystem->playerAvatar), &v3);
Camera_Move(&v3, ctx->fieldSystem->camera);
sub_020630AC(Player_MapObject(ctx->fieldSystem->playerAvatar), &pos);
Camera_Move(&pos, ctx->fieldSystem->camera);
return FALSE;
}
@ -3772,7 +3772,7 @@ static BOOL ScrCmd_ReturnToField(ScriptContext *ctx)
return TRUE;
}
static BOOL ScrCmd_1F8(ScriptContext *ctx)
static BOOL ScrCmd_WaitForTransition(ScriptContext *ctx)
{
FieldTransition_FinishMap(ctx->fieldSystem->task);
return TRUE;

View File

@ -485,10 +485,10 @@ void sub_0202D628(UnkStruct_0202D764 *param0, UnkStruct_02049A68 *param1)
param1->unk_04 = param0->unk_100;
}
void sub_0202D63C(UnkStruct_0202D764 *param0, UnkStruct_ov104_0223A348 *param1, const u8 param2)
void sub_0202D63C(UnkStruct_0202D764 *param0, FrontierDataDTO *param1, const u8 param2)
{
FrontierTrainerDataDTO *v0 = &(param1->unk_00);
FrontierPokemonDataDTO *v1 = param1->unk_30;
FrontierTrainerDataDTO *v0 = &(param1->trDataDTO);
FrontierPokemonDataDTO *v1 = param1->monDataDTO;
UnkStruct_0202D63C *v2 = &(param0->unk_104[param2]);
v0->trainerID = 10000;

View File

@ -3,11 +3,14 @@
#include <nitro.h>
#include <string.h>
#include "constants/battle_tower.h"
#include "generated/battle_tower_functions.h"
#include "generated/battle_tower_modes.h"
#include "generated/game_records.h"
#include "generated/object_events.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_02049A68.h"
#include "struct_defs/struct_0204AFC4.h"
#include "field/field_system.h"
#include "overlay005/field_menu.h"
@ -29,7 +32,7 @@
#include "unk_0206B9D8.h"
#include "unk_0209BA80.h"
static u16 sub_02049AE0(BattleTower *battleTower, u8 param1);
static u16 BattleTower_GetPartnerParam(BattleTower *battleTower, u8 param1);
BOOL ScrCmd_InitBattleTower(ScriptContext *ctx)
{
@ -43,7 +46,7 @@ BOOL ScrCmd_InitBattleTower(ScriptContext *ctx)
BOOL ScrCmd_SetBattleTowerNull(ScriptContext *ctx)
{
BattleTower_SetNull(&(ctx->fieldSystem->battleTower));
return 0;
return FALSE;
}
BOOL ScrCmd_FreeBattleTower(ScriptContext *ctx)
@ -137,8 +140,8 @@ BOOL ScrCmd_CallBattleTowerFunction(ScriptContext *ctx)
case BATTLE_TOWER_FUNCTION_UNK_56:
sub_0204A97C(battleTower);
break;
case BATTLE_TOWER_FUNCTION_UNK_41:
*destVar = sub_0204A9E0(battleTower, functionArgument);
case BATTLE_TOWER_FUNCTION_GET_OPPONENT_OBJECT_ID:
*destVar = BattleTower_GetObjectIDFromOpponentID(battleTower, functionArgument);
break;
case BATTLE_TOWER_FUNCTION_GET_CHALLENGE_MODE:
*destVar = (u16)BattleTower_GetChallengeMode(battleTower);
@ -155,11 +158,11 @@ BOOL ScrCmd_CallBattleTowerFunction(ScriptContext *ctx)
case BATTLE_TOWER_FUNCTION_UNK_49:
*destVar = sub_0204ABA0(battleTower, ctx->fieldSystem->saveData);
break;
case BATTLE_TOWER_FUNCTION_UNK_50:
battleTower->unk_10_5 = functionArgument;
case BATTLE_TOWER_FUNCTION_SET_PARTNER_ID:
battleTower->partnerID = functionArgument;
break;
case BATTLE_TOWER_FUNCTION_UNK_51:
*destVar = battleTower->unk_10_5;
case BATTLE_TOWER_FUNCTION_GET_PARTNER_ID:
*destVar = battleTower->partnerID;
break;
case BATTLE_TOWER_FUNCTION_UNK_52:
sub_0204A4C8(battleTower, ctx->fieldSystem->saveData);
@ -170,8 +173,8 @@ BOOL ScrCmd_CallBattleTowerFunction(ScriptContext *ctx)
case BATTLE_TOWER_FUNCTION_UNK_54:
*destVar = sub_0204AABC(battleTower, ctx->fieldSystem->saveData, 1);
break;
case BATTLE_TOWER_FUNCTION_UNK_55:
*destVar = sub_02049AE0(battleTower, functionArgument);
case BATTLE_TOWER_FUNCTION_GET_PARTNER_PARAM:
*destVar = BattleTower_GetPartnerParam(battleTower, functionArgument);
break;
case BATTLE_TOWER_FUNCTION_UNK_57:
*destVar = sub_0204ABF4(battleTower, ctx->fieldSystem->saveData);
@ -195,21 +198,21 @@ BOOL ScrCmd_CallBattleTowerFunction(ScriptContext *ctx)
return FALSE;
}
BOOL ScrCmd_1DE(ScriptContext *ctx)
BOOL ScrCmd_GetBattleTowerPartnerSpeciesAndMove(ScriptContext *ctx)
{
u16 v0, v1;
u16 *v2, *v3;
u16 partnerID, monID;
u16 *destVar1, *destVar2;
BattleTower *battleTower = ctx->fieldSystem->battleTower;
v0 = ScriptContext_GetVar(ctx);
v1 = ScriptContext_GetVar(ctx);
v2 = FieldSystem_GetVarPointer(ctx->fieldSystem, ScriptContext_ReadHalfWord(ctx));
v3 = FieldSystem_GetVarPointer(ctx->fieldSystem, ScriptContext_ReadHalfWord(ctx));
partnerID = ScriptContext_GetVar(ctx);
monID = ScriptContext_GetVar(ctx);
destVar1 = FieldSystem_GetVarPointer(ctx->fieldSystem, ScriptContext_ReadHalfWord(ctx));
destVar2 = FieldSystem_GetVarPointer(ctx->fieldSystem, ScriptContext_ReadHalfWord(ctx));
*v2 = battleTower->unk_298[v0].unk_30[v1].species;
*v3 = battleTower->unk_298[v0].unk_30[v1].moves[0];
*destVar1 = battleTower->partnersDataDTO[partnerID].monDataDTO[monID].species;
*destVar2 = battleTower->partnersDataDTO[partnerID].monDataDTO[monID].moves[0];
return 0;
return FALSE;
}
BOOL ScrCmd_1DF(ScriptContext *ctx)
@ -348,36 +351,36 @@ BOOL ScrCmd_1E4(ScriptContext *ctx)
return FALSE;
}
static u16 sub_02049AE0(BattleTower *battleTower, u8 param1)
static u16 BattleTower_GetPartnerParam(BattleTower *battleTower, u8 param)
{
static const u16 v0[] = {
0x8d,
0x91,
0x8e,
0x8f,
0x90
static const u16 partnerGraphics[] = {
OBJ_EVENT_GFX_CHERYL,
OBJ_EVENT_GFX_MIRA,
OBJ_EVENT_GFX_RILEY,
OBJ_EVENT_GFX_MARLEY,
OBJ_EVENT_GFX_BUCK
};
if (param1 == 2) {
return battleTower->unk_10_5;
if (param == BT_PARAM_PARTNER_ID) {
return battleTower->partnerID;
}
if (param1 == 1) {
if (battleTower->challengeMode == 2) {
return v0[battleTower->unk_10_5];
if (param == BT_PARAM_PARTNER_GRAPHICS_ID) {
if (battleTower->challengeMode == BATTLE_TOWER_MODE_MULTI) {
return partnerGraphics[battleTower->partnerID];
} else {
if (battleTower->unk_12) {
return 0x61;
if (battleTower->partnerGender) {
return OBJ_EVENT_GFX_PLAYER_F;
} else {
return 0x0;
return OBJ_EVENT_GFX_PLAYER_M;
}
}
}
if (battleTower->unk_11) {
return 0x61;
if (battleTower->playerGender) {
return OBJ_EVENT_GFX_PLAYER_F;
} else {
return 0x0;
return OBJ_EVENT_GFX_PLAYER_M;
}
}

View File

@ -4,6 +4,7 @@
#include <string.h>
#include "generated/battle_tower_modes.h"
#include "generated/frontier_trainers.h"
#include "generated/game_records.h"
#include "generated/trainer_score_events.h"
@ -11,7 +12,7 @@
#include "struct_decls/struct_0202D750_decl.h"
#include "struct_decls/struct_0202D764_decl.h"
#include "struct_defs/battle_frontier.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/underground.h"
#include "applications/party_menu/defs.h"
@ -359,14 +360,14 @@ BattleTower *BattleTower_Init(SaveData *saveData, u16 param1, u16 challengeMode)
battleTower->unk_08 = sub_0202D0BC(battleTower->unk_70, 10, NULL);
if (battleTower->challengeMode == BATTLE_TOWER_MODE_MULTI) {
battleTower->unk_10_5 = (u8)sub_0202D0BC(battleTower->unk_70, 9, NULL);
battleTower->partnerID = (u8)sub_0202D0BC(battleTower->unk_70, 9, NULL);
sub_0202D0BC(battleTower->unk_70, 6, &(battleTower->unk_7E8[battleTower->unk_10_5]));
sub_0204B404(battleTower, &battleTower->unk_298[battleTower->unk_10_5], 300 + battleTower->unk_10_5, sub_0202D0BC(battleTower->unk_70, 7, NULL), &(battleTower->unk_7E8[battleTower->unk_10_5]), battleTower->heapID);
sub_0202D0BC(battleTower->unk_70, 6, &(battleTower->unk_7E8[battleTower->partnerID]));
sub_0204B404(battleTower, &battleTower->partnersDataDTO[battleTower->partnerID], FRONTIER_TRAINER_TRAINER_CHERYL_CHERYL + battleTower->partnerID, sub_0202D0BC(battleTower->unk_70, 7, NULL), &(battleTower->unk_7E8[battleTower->partnerID]), battleTower->heapID);
}
}
battleTower->unk_11 = TrainerInfo_Gender(SaveData_GetTrainerInfo(saveData));
battleTower->playerGender = TrainerInfo_Gender(SaveData_GetTrainerInfo(saveData));
if (battleTower->challengeMode != BATTLE_TOWER_MODE_5) {
frontier = SaveData_GetBattleFrontier(saveData);
@ -718,25 +719,23 @@ void sub_0204A8C8(BattleTower *battleTower)
return;
}
v1[0] = battleTower->unk_10_5;
v1[0] = battleTower->partnerID;
sub_0202D140(battleTower->unk_70, 9, v1);
sub_0202D140(battleTower->unk_70, 6, &(battleTower->unk_7E8[battleTower->unk_10_5]));
sub_0202D140(battleTower->unk_70, 7, &(battleTower->unk_838[battleTower->unk_10_5]));
sub_0202D140(battleTower->unk_70, 6, &(battleTower->unk_7E8[battleTower->partnerID]));
sub_0202D140(battleTower->unk_70, 7, &(battleTower->unk_838[battleTower->partnerID]));
}
void sub_0204A97C(BattleTower *battleTower)
{
int v0;
for (v0 = 0; v0 < 5; v0++) {
battleTower->unk_838[v0] = (u8)sub_0204B3B8(battleTower, &(battleTower->unk_298[v0]), 300 + v0, battleTower->partySize, battleTower->unk_2E, battleTower->unk_36, &(battleTower->unk_7E8[v0]), battleTower->heapID);
for (int partnerID = 0; partnerID < BT_PARTNERS_COUNT; partnerID++) {
battleTower->unk_838[partnerID] = (u8)sub_0204B3B8(battleTower, &(battleTower->partnersDataDTO[partnerID]), FRONTIER_TRAINER_TRAINER_CHERYL_CHERYL + partnerID, battleTower->partySize, battleTower->unk_2E, battleTower->unk_36, &(battleTower->unk_7E8[partnerID]), battleTower->heapID);
}
}
u16 sub_0204A9E0(BattleTower *battleTower, u16 param1)
u16 BattleTower_GetObjectIDFromOpponentID(BattleTower *battleTower, u16 opponentID)
{
return sub_0204AF9C(battleTower->unk_78[param1].unk_00.trainerType);
return BattleFrontier_GetObjectIDFromTrainerClass(battleTower->unk_78[opponentID].trDataDTO.trainerType);
}
u16 BattleTower_GetChallengeMode(BattleTower *battleTower)
@ -1031,29 +1030,29 @@ static void sub_0204AE20(BattleTower *battleTower, SaveData *saveData, int param
Heap_Free(v1);
}
u8 sub_0204AE84(u16 param0)
u8 BattleTower_GetIVsFromTrainerID(u16 battleTowerID)
{
u8 v0;
u8 ivs;
if (param0 < 100) {
v0 = (0x1f / 8) * 1;
} else if (param0 < 120) {
v0 = (0x1f / 8) * 2;
} else if (param0 < 140) {
v0 = (0x1f / 8) * 3;
} else if (param0 < 160) {
v0 = (0x1f / 8) * 4;
} else if (param0 < 180) {
v0 = (0x1f / 8) * 5;
} else if (param0 < 200) {
v0 = (0x1f / 8) * 6;
} else if (param0 < 220) {
v0 = (0x1f / 8) * 7;
if (battleTowerID < 100) {
ivs = MAX_IVS_SINGLE_STAT / 8 * 1;
} else if (battleTowerID < 120) {
ivs = MAX_IVS_SINGLE_STAT / 8 * 2;
} else if (battleTowerID < 140) {
ivs = MAX_IVS_SINGLE_STAT / 8 * 3;
} else if (battleTowerID < 160) {
ivs = MAX_IVS_SINGLE_STAT / 8 * 4;
} else if (battleTowerID < 180) {
ivs = MAX_IVS_SINGLE_STAT / 8 * 5;
} else if (battleTowerID < 200) {
ivs = MAX_IVS_SINGLE_STAT / 8 * 6;
} else if (battleTowerID < 220) {
ivs = MAX_IVS_SINGLE_STAT / 8 * 7;
} else {
v0 = 0x1f;
ivs = MAX_IVS_SINGLE_STAT;
}
return v0;
return ivs;
}
u16 sub_0204AEC0(BattleTower *battleTower)

View File

@ -3,6 +3,7 @@
#include <nitro.h>
#include <string.h>
#include "constants/battle_tower.h"
#include "generated/battle_tower_modes.h"
#include "generated/object_events.h"
#include "generated/species_data_params.h"
@ -11,7 +12,7 @@
#include "struct_decls/pokedexdata_decl.h"
#include "struct_defs/battle_frontier_pokemon_data.h"
#include "struct_defs/battle_frontier_trainer_data.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0204B404.h"
#include "field/field_system.h"
@ -34,7 +35,7 @@
#include "unk_0202D05C.h"
#include "unk_02049D08.h"
static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *param1, u16 param2, FrontierPokemonDataDTO *param3, u8 param4, u16 *param5, u16 *param6, UnkStruct_0204B404 *param7, int param8);
static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *trainerData, u16 partnerBattleTowerID, FrontierPokemonDataDTO *param3, u8 partySize, u16 *param5, u16 *param6, UnkStruct_0204B404 *param7, int param8);
static void *sub_0204B630(u16 param0, int param1);
static void sub_0204B640(BattleFrontierPokemonData *param0, int param1);
@ -139,7 +140,7 @@ StringTemplate *BattleFrontier_MakeSeenBanlistSpeciesMsg(SaveData *saveData, u16
return bannedSpeciesList;
}
u16 sub_0204AF9C(u8 trainerClass)
u16 BattleFrontier_GetObjectIDFromTrainerClass(u8 trainerClass)
{
for (int v0 = 0; v0 < (NELEMS(sTrainerClassToObjectID)); v0++) {
if (sTrainerClassToObjectID[v0][0] == trainerClass) {
@ -155,11 +156,11 @@ u16 sub_0204AFC4(FieldSystem *fieldSystem, const u16 *param1)
u16 v0 = 0;
BattleTower *battleTower = fieldSystem->battleTower;
battleTower->unk_12 = (u8)param1[0];
battleTower->partnerGender = (u8)param1[0];
battleTower->unk_16[0] = param1[1];
battleTower->unk_16[1] = param1[2];
battleTower->unk_14 = param1[3];
battleTower->unk_10_5 = 5 + battleTower->unk_12;
battleTower->partnerID = BT_PARTNERS_COUNT + battleTower->partnerGender;
if ((battleTower->unk_2E[0] == battleTower->unk_16[0]) || (battleTower->unk_2E[0] == battleTower->unk_16[1])) {
v0 += 1;
@ -277,22 +278,22 @@ u16 sub_0204B0F0(BattleTower *battleTower, u8 param1, u8 param2, int challengeMo
return v0;
}
static BattleFrontierTrainerData *sub_0204B184(UnkStruct_ov104_0223A348 *param0, u16 param1, int heapID)
static BattleFrontierTrainerData *sub_0204B184(FrontierDataDTO *param0, u16 param1, int heapID)
{
MessageLoader *v1 = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_FRONTIER_TRAINER_NAMES, heapID);
MI_CpuClear8(param0, sizeof(UnkStruct_ov104_0223A348));
MI_CpuClear8(param0, sizeof(FrontierDataDTO));
BattleFrontierTrainerData *v0 = sub_0204B630(param1, heapID);
param0->unk_00.trainerID = param1;
param0->unk_00.unk_18[0] = 0xFFFF;
param0->unk_00.unk_18[1] = param1 * 3;
param0->unk_00.trainerType = v0->trainerType;
param0->trDataDTO.trainerID = param1;
param0->trDataDTO.unk_18[0] = 0xFFFF;
param0->trDataDTO.unk_18[1] = param1 * 3;
param0->trDataDTO.trainerType = v0->trainerType;
Strbuf *v2 = MessageLoader_GetNewStrbuf(v1, param1);
Strbuf_ToChars(v2, &param0->unk_00.trainerName[0], 8); // Possibly TRAINER_NAME_LEN + 1
Strbuf_ToChars(v2, &param0->trDataDTO.trainerName[0], TRAINER_NAME_LEN + 1);
Strbuf_Free(v2);
MessageLoader_Free(v1);
@ -306,7 +307,7 @@ static const u16 Unk_020EBD50[] = {
ITEM_QUICK_CLAW
};
static u32 sub_0204B1E8(BattleTower *battleTower, FrontierPokemonDataDTO *param1, u16 param2, u32 param3, u32 param4, u8 param5, u8 param6, BOOL param7, int param8)
static u32 sub_0204B1E8(BattleTower *battleTower, FrontierPokemonDataDTO *param1, u16 param2, u32 param3, u32 param4, u8 ivs, u8 param6, BOOL param7, int param8)
{
int v0;
u32 v2;
@ -347,12 +348,12 @@ static u32 sub_0204B1E8(BattleTower *battleTower, FrontierPokemonDataDTO *param1
v2 = param4;
}
param1->hpIV = param5;
param1->atkIV = param5;
param1->defIV = param5;
param1->speedIV = param5;
param1->spAtkIV = param5;
param1->spDefIV = param5;
param1->hpIV = ivs;
param1->atkIV = ivs;
param1->defIV = ivs;
param1->speedIV = ivs;
param1->spAtkIV = ivs;
param1->spDefIV = ivs;
int v1 = 0;
@ -395,34 +396,34 @@ static u32 sub_0204B1E8(BattleTower *battleTower, FrontierPokemonDataDTO *param1
return v2;
}
BOOL sub_0204B3B8(BattleTower *battleTower, UnkStruct_ov104_0223A348 *param1, u16 param2, int param3, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID)
BOOL sub_0204B3B8(BattleTower *battleTower, FrontierDataDTO *param1, u16 partnerBattleTowerID, int partysize, u16 *param4, u16 *param5, UnkStruct_0204B404 *param6, int heapID)
{
BOOL v0 = 0;
BattleFrontierTrainerData *v1 = sub_0204B184(param1, param2, heapID);
v0 = sub_0204B470(battleTower, v1, param2, &param1->unk_30[0], param3, param4, param5, param6, heapID);
BOOL v0 = FALSE;
BattleFrontierTrainerData *trainerData = sub_0204B184(param1, partnerBattleTowerID, heapID);
v0 = sub_0204B470(battleTower, trainerData, partnerBattleTowerID, &param1->monDataDTO[0], partysize, param4, param5, param6, heapID);
Heap_Free(v1);
Heap_Free(trainerData);
return v0;
}
void sub_0204B404(BattleTower *battleTower, UnkStruct_ov104_0223A348 *param1, u16 param2, BOOL param3, const UnkStruct_0204B404 *param4, int heapID)
void sub_0204B404(BattleTower *battleTower, FrontierDataDTO *param1, u16 partnerBattleTowerID, BOOL param3, const UnkStruct_0204B404 *param4, int heapID)
{
u8 v1 = 0;
BattleFrontierTrainerData *v2 = sub_0204B184(param1, param2, heapID);
v1 = sub_0204AE84(param2);
u8 ivs = 0;
BattleFrontierTrainerData *v2 = sub_0204B184(param1, partnerBattleTowerID, heapID);
ivs = BattleTower_GetIVsFromTrainerID(partnerBattleTowerID);
for (int v0 = 0; v0 < 2; v0++) {
sub_0204B1E8(battleTower, &(param1->unk_30[v0]), param4->unk_04[v0], param4->unk_00, param4->unk_08[v0], v1, v0, param3, heapID);
sub_0204B1E8(battleTower, &(param1->monDataDTO[v0]), param4->unk_04[v0], param4->unk_00, param4->unk_08[v0], ivs, v0, param3, heapID);
}
Heap_Free(v2);
}
static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *param1, u16 param2, FrontierPokemonDataDTO *param3, u8 param4, u16 *param5, u16 *param6, UnkStruct_0204B404 *param7, int param8)
static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *trainerData, u16 partnerBattleTowerID, FrontierPokemonDataDTO *param3, u8 partySize, u16 *param5, u16 *param6, UnkStruct_0204B404 *param7, int param8)
{
int v0, v1;
u8 v2;
u8 ivs;
u8 v3;
u32 v4;
int v5;
@ -430,18 +431,18 @@ static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *pa
u32 v7[4];
int v8;
int v9;
BOOL v10 = 0;
BOOL v10 = FALSE;
BattleFrontierPokemonData v11;
BattleFrontierPokemonData v12;
GF_ASSERT(param4 <= 4);
GF_ASSERT(partySize <= 4);
v8 = 0;
v9 = 0;
while (v8 != param4) {
v3 = sub_0204AEC0(battleTower) % param1->numSets;
v5 = param1->setIDs[v3];
while (v8 != partySize) {
v3 = sub_0204AEC0(battleTower) % trainerData->numSets;
v5 = trainerData->setIDs[v3];
sub_0204B640(&v12, v5);
@ -458,13 +459,13 @@ static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *pa
}
if (param5 != NULL) {
for (v0 = 0; v0 < param4; v0++) {
for (v0 = 0; v0 < partySize; v0++) {
if (param5[v0] == v12.species) {
break;
}
}
if (v0 != param4) {
if (v0 != partySize) {
continue;
}
}
@ -484,13 +485,13 @@ static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *pa
}
if (param6 != NULL) {
for (v0 = 0; v0 < param4; v0++) {
for (v0 = 0; v0 < partySize; v0++) {
if ((param6[v0] == v12.item) && (param6[v0] != 0)) {
break;
}
}
if (v0 != param4) {
if (v0 != partySize) {
v9++;
continue;
}
@ -501,15 +502,15 @@ static BOOL sub_0204B470(BattleTower *battleTower, BattleFrontierTrainerData *pa
v8++;
}
v2 = sub_0204AE84(param2);
ivs = BattleTower_GetIVsFromTrainerID(partnerBattleTowerID);
v4 = (sub_0204AEC0(battleTower) | (sub_0204AEC0(battleTower) << 16));
if (v9 >= 50) {
v10 = 1;
v10 = TRUE;
}
for (v0 = 0; v0 < v8; v0++) {
v7[v0] = sub_0204B1E8(battleTower, &(param3[v0]), v6[v0], v4, 0, v2, v0, v10, param8);
v7[v0] = sub_0204B1E8(battleTower, &(param3[v0]), v6[v0], v4, 0, ivs, v0, v10, param8);
}
if (param7 == NULL) {

View File

@ -10,7 +10,7 @@
#include "struct_decls/struct_0203026C_decl.h"
#include "struct_decls/struct_020308A0_decl.h"
#include "struct_defs/battle_frontier.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0204F3D0.h"
#include "applications/party_menu/defs.h"

View File

@ -6,7 +6,7 @@
#include "struct_decls/struct_020302DC_decl.h"
#include "struct_decls/struct_0203041C_decl.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_0204FCF8.h"
#include "applications/party_menu/defs.h"

View File

@ -6,7 +6,7 @@
#include "struct_decls/struct_020304A0_decl.h"
#include "struct_decls/struct_020305B8_decl.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_02050224.h"
#include "applications/party_menu/defs.h"

View File

@ -3,8 +3,10 @@
#include <nitro.h>
#include <string.h>
#include "constants/battle_tower.h"
#include "struct_defs/battle_tower.h"
#include "struct_defs/struct_02039A58.h"
#include "struct_defs/struct_0204AFC4.h"
#include "struct_defs/struct_0209BBA4.h"
#include "overlay104/ov104_0222ECE8.h"
@ -113,11 +115,11 @@ static void sub_0209BA94(int param0, int param1, void *param2, void *param3)
return;
}
battleTower->unk_12 = (u8)v3[0];
battleTower->partnerGender = (u8)v3[0];
battleTower->unk_16[0] = v3[1];
battleTower->unk_16[1] = v3[2];
battleTower->unk_14 = v3[3];
battleTower->unk_10_5 = 5 + battleTower->unk_12;
battleTower->partnerID = BT_PARTNERS_COUNT + battleTower->partnerGender;
if ((battleTower->unk_2E[0] == battleTower->unk_16[0]) || (battleTower->unk_2E[0] == battleTower->unk_16[1])) {
v0 += 1;