Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
battle.h File Reference

Go to the source code of this file.

Data Structures

struct  BattleMoveEntry
 
struct  ActorBlueprint
 
struct  FormationRow
 
struct  StaticFormationActor
 
struct  StaticFormationEntry
 
struct  Stage
 
struct  Battle
 Zero-terminated. More...
 
struct  StageListRow
 Zero-terminated. More...
 
struct  BattleArea
 
struct  ActorSounds
 
struct  ActorOffsets
 
struct  PlayerCelebrationAnimOptions
 
union  FormationRow.home
 

Macros

#define STAGE_MODEL_LIST_END   0
 
#define BTL_MOVE(name, script)
 
#define BTL_ITEM(name)
 
#define BATTLE(formation, stage, name)   { name, ARRAY_COUNT(formation), (Formation*) formation, &stage }
 
#define BATTLE_WITH_SCRIPT(formation, stage, script, name)   { name, ARRAY_COUNT(formation), (Formation*) formation, &stage, &script }
 
#define ACTOR_BY_IDX(_name, _idx, _priority, args...)   { .actor = &_name, .home = { .index = _idx }, .priority = _priority, args }
 
#define ACTOR_BY_POS(_name, _pos, _priority, args...)   { .actor = &_name, .home = { .vec = &_pos }, .priority = _priority, args }
 
#define STAGE(_name, _stage)   { .name = _name, .stage = &_stage }
 
#define EXEC_DEATH_NO_SPINNING   -12345
 
#define ACTOR_API_SKIP_ARG   -12345678
 
#define DANGER_THRESHOLD   5
 
#define PERIL_THRESHOLD   1
 

Typedefs

typedef FormationRow Formation[]
 
typedef Battle BattleList[]
 
typedef StageListRow StageList[]
 

Enumerations

enum  BattleAreaIDs {
  BTL_AREA_KMR_1 = 0x00 , BTL_AREA_KMR_2 = 0x01 , BTL_AREA_KMR_3 = 0x02 , BTL_AREA_MAC = 0x03 ,
  BTL_AREA_HOS = 0x04 , BTL_AREA_NOK = 0x05 , BTL_AREA_TRD_1 = 0x06 , BTL_AREA_TRD_2 = 0x07 ,
  BTL_AREA_TRD_3 = 0x08 , BTL_AREA_IWA = 0x09 , BTL_AREA_SBK = 0x0A , BTL_AREA_ISK_1 = 0x0B ,
  BTL_AREA_ISK_2 = 0x0C , BTL_AREA_MIM = 0x0D , BTL_AREA_ARN = 0x0E , BTL_AREA_DGB = 0x0F ,
  BTL_AREA_OMO = 0x10 , BTL_AREA_OMO2 = 0x11 , BTL_AREA_OMO3 = 0x12 , BTL_AREA_KGR = 0x13 ,
  BTL_AREA_JAN = 0x14 , BTL_AREA_JAN2 = 0x15 , BTL_AREA_KZN = 0x16 , BTL_AREA_KZN2 = 0x17 ,
  BTL_AREA_FLO = 0x18 , BTL_AREA_FLO2 = 0x19 , BTL_AREA_TIK = 0x1A , BTL_AREA_TIK2 = 0x1B ,
  BTL_AREA_TIK3 = 0x1C , BTL_AREA_SAM = 0x1D , BTL_AREA_SAM2 = 0x1E , BTL_AREA_PRA = 0x1F ,
  BTL_AREA_PRA2 = 0x20 , BTL_AREA_PRA3 = 0x21 , BTL_AREA_KPA = 0x22 , BTL_AREA_KPA2 = 0x23 ,
  BTL_AREA_KPA3 = 0x24 , BTL_AREA_KPA4 = 0x25 , BTL_AREA_KKJ = 0x26 , BTL_AREA_DIG = 0x27 ,
  BTL_AREA_UNUSED_28 = 0x28 , BTL_AREA_OMO2_1 = 0x29 , BTL_AREA_OMO2_2 = 0x2A , BTL_AREA_OMO2_3 = 0x2B ,
  BTL_AREA_OMO2_4 = 0x2C , BTL_AREA_OMO2_5 = 0x2D , BTL_AREA_OMO2_6 = 0x2E
}
 
enum  BattlePositions {
  BTL_POS_GROUND_A = 0 , BTL_POS_GROUND_B = 1 , BTL_POS_GROUND_C = 2 , BTL_POS_GROUND_D = 3 ,
  BTL_POS_AIR_A = 4 , BTL_POS_AIR_B = 5 , BTL_POS_AIR_C = 6 , BTL_POS_AIR_D = 7 ,
  BTL_POS_HIGH_A = 8 , BTL_POS_HIGH_B = 9 , BTL_POS_HIGH_C = 10 , BTL_POS_HIGH_D = 11 ,
  BTL_POS_TOP_A = 12 , BTL_POS_TOP_B = 13 , BTL_POS_TOP_C = 14 , BTL_POS_TOP_D = 15 ,
  BTL_POS_CENTER = 16
}
 
enum  BattleVars {
  BTL_VAR_DuplighostCopyFlags = 0 , BTL_VAL_Duplighost_HasCopied = 0x4 , BTL_VAR_HyperSync = 1 , BTL_VAL_HyperSync_None = 0 ,
  BTL_VAL_HyperSync_Done = 1 , BTL_VAL_HyperSync_Active = 2 , BTL_VAR_Magikoopa_LastIndexBoosted = 2 , BTL_VAR_LastCopiedPartner = 3 ,
  BTL_VAR_KoopatrolSummonCount_0 = 4 , BTL_VAR_KoopatrolSummonCount_1 = 5 , BTL_VAR_KoopatrolSummonCount_2 = 6 , BTL_VAR_KoopatrolSummonCount_3 = 7
}
 
enum  CommonActorVars { AVAR_DryBones_Collapsed = 8 , AVAR_SpearGuy_Generation = 1 , AVAR_JungleFuzzy_Generation = 0 }
 

Functions

void load_demo_battle (u32 index)
 
Actorcreate_actor (Formation formation)
 

Variables

s32 bActorNames []
 
BattleArea gBattleAreas [0x30]
 
ActorSounds bActorSoundTable []
 
BattlegCurrentBattlePtr
 
ActorOffsets bActorOffsets []
 

Data Structure Documentation

◆ BattleMoveEntry

struct BattleMoveEntry
Data Fields
u8 * romStart
u8 * romEnd
u8 * vramStart
EvtScript * mainScript

◆ ActorBlueprint

struct ActorBlueprint
Data Fields
s32 flags
s16 maxHP
u8 type
u8 level
s16 partCount
char unk_0A[2]
struct ActorPartBlueprint * partsData
EvtScript * initScript
s32 * statusTable
u8 escapeChance
u8 airLiftChance
u8 hurricaneChance
u8 spookChance
u8 upAndAwayChance
u8 spinSmashReq
u8 powerBounceChance
u8 coinReward
Vec2b size
Vec2b healthBarOffset
Vec2b statusIconOffset
Vec2b statusTextOffset

◆ FormationRow

struct FormationRow
Data Fields
ActorBlueprint * actor
union FormationRow.home home
s32 priority Actors with higher priority values take their turn first.
s32 var0
s32 var1
s32 var2
s32 var3

◆ StaticFormationActor

struct StaticFormationActor
Data Fields
char unk_00[0x4]

◆ StaticFormationEntry

struct StaticFormationEntry
Data Fields
char * sjisName
s32 numActors
StaticFormationActor * actors
char * stageName
char unk_10[0x4]

◆ Stage

struct Stage
Data Fields
char * texture
const char * shape
const char * hit
EvtScript * preBattle
EvtScript * postBattle
char * bg
s32 * foregroundModelList
s32 stageEnemyCount
Formation * stageFormation
s32 stageEnemyChance

◆ Battle

struct Battle
Data Fields
const char * name Debug SJIS name.
s32 formationSize
Formation * formation
Stage * stage
EvtScript * onBattleStart

◆ StageListRow

struct StageListRow
Data Fields
const char * name Map ID.
Stage * stage

◆ BattleArea

struct BattleArea
Data Fields
char * name JP debug name.
void * dmaStart
void * dmaEnd
void * dmaDest
BattleList * battles
StageList * stages
s32 unused_18
DmaTable * dmaTable

◆ ActorSounds

struct ActorSounds
Data Fields
s32 walk[2]
s32 fly[2]
s32 jump
s32 hurt
s16 delay[2] Number of frames to wait between walk/fly sounds. Negative values are in distance.

◆ ActorOffsets

struct ActorOffsets
Data Fields
Vec3b tattleCam
s8 shadow

◆ PlayerCelebrationAnimOptions

struct PlayerCelebrationAnimOptions
Data Fields
s16 randomChance
s16 hpBasedChance
s32 options[80]

◆ FormationRow.home

union FormationRow.home
Data Fields
s32 index
Vec3i * vec

Macro Definition Documentation

◆ STAGE_MODEL_LIST_END

#define STAGE_MODEL_LIST_END   0

◆ BTL_MOVE

#define BTL_MOVE ( name,
script )
Value:
{ \
.romStart = battle_move_##name##_ROM_START, \
.romEnd = battle_move_##name##_ROM_END, \
.vramStart = battle_move_##name##_VRAM, \
.mainScript = &battle_move_##name##_##script \
}

Definition at line 114 of file battle.h.

114#define BTL_MOVE(name, script) \
115{ \
116 .romStart = battle_move_##name##_ROM_START, \
117 .romEnd = battle_move_##name##_ROM_END, \
118 .vramStart = battle_move_##name##_VRAM, \
119 .mainScript = &battle_move_##name##_##script \
120}

◆ BTL_ITEM

#define BTL_ITEM ( name)
Value:
{ \
.romStart = name##_ROM_START, \
.romEnd = name##_ROM_END, \
.vramStart = name##_VRAM, \
.mainScript = &battle_item_##name##_##EVS_UseItem \
}

Definition at line 122 of file battle.h.

122#define BTL_ITEM(name) \
123{ \
124 .romStart = name##_ROM_START, \
125 .romEnd = name##_ROM_END, \
126 .vramStart = name##_VRAM, \
127 .mainScript = &battle_item_##name##_##EVS_UseItem \
128}

◆ BATTLE

#define BATTLE ( formation,
stage,
name )   { name, ARRAY_COUNT(formation), (Formation*) formation, &stage }

Definition at line 226 of file battle.h.

◆ BATTLE_WITH_SCRIPT

#define BATTLE_WITH_SCRIPT ( formation,
stage,
script,
name )   { name, ARRAY_COUNT(formation), (Formation*) formation, &stage, &script }

Definition at line 227 of file battle.h.

◆ ACTOR_BY_IDX

#define ACTOR_BY_IDX ( _name,
_idx,
_priority,
args... )   { .actor = &_name, .home = { .index = _idx }, .priority = _priority, args }

Definition at line 229 of file battle.h.

◆ ACTOR_BY_POS

#define ACTOR_BY_POS ( _name,
_pos,
_priority,
args... )   { .actor = &_name, .home = { .vec = &_pos }, .priority = _priority, args }

Definition at line 230 of file battle.h.

Referenced by A(), A(), A(), A(), A(), A(), A(), and A().

◆ STAGE

#define STAGE ( _name,
_stage )   { .name = _name, .stage = &_stage }

Definition at line 232 of file battle.h.

◆ EXEC_DEATH_NO_SPINNING

#define EXEC_DEATH_NO_SPINNING   -12345

Definition at line 263 of file battle.h.

◆ ACTOR_API_SKIP_ARG

#define ACTOR_API_SKIP_ARG   -12345678

Definition at line 264 of file battle.h.

◆ DANGER_THRESHOLD

◆ PERIL_THRESHOLD

#define PERIL_THRESHOLD   1

Typedef Documentation

◆ Formation

typedef FormationRow Formation[]

Definition at line 167 of file battle.h.

◆ BattleList

typedef Battle BattleList[]

Definition at line 203 of file battle.h.

◆ StageList

typedef StageListRow StageList[]

Definition at line 211 of file battle.h.

Enumeration Type Documentation

◆ BattleAreaIDs

Enumerator
BTL_AREA_KMR_1 
BTL_AREA_KMR_2 
BTL_AREA_KMR_3 
BTL_AREA_MAC 
BTL_AREA_HOS 
BTL_AREA_NOK 
BTL_AREA_TRD_1 
BTL_AREA_TRD_2 
BTL_AREA_TRD_3 
BTL_AREA_IWA 
BTL_AREA_SBK 
BTL_AREA_ISK_1 
BTL_AREA_ISK_2 
BTL_AREA_MIM 
BTL_AREA_ARN 
BTL_AREA_DGB 
BTL_AREA_OMO 
BTL_AREA_OMO2 
BTL_AREA_OMO3 
BTL_AREA_KGR 
BTL_AREA_JAN 
BTL_AREA_JAN2 
BTL_AREA_KZN 
BTL_AREA_KZN2 
BTL_AREA_FLO 
BTL_AREA_FLO2 
BTL_AREA_TIK 
BTL_AREA_TIK2 
BTL_AREA_TIK3 
BTL_AREA_SAM 
BTL_AREA_SAM2 
BTL_AREA_PRA 
BTL_AREA_PRA2 
BTL_AREA_PRA3 
BTL_AREA_KPA 
BTL_AREA_KPA2 
BTL_AREA_KPA3 
BTL_AREA_KPA4 
BTL_AREA_KKJ 
BTL_AREA_DIG 
BTL_AREA_UNUSED_28 
BTL_AREA_OMO2_1 
BTL_AREA_OMO2_2 
BTL_AREA_OMO2_3 
BTL_AREA_OMO2_4 
BTL_AREA_OMO2_5 
BTL_AREA_OMO2_6 

Definition at line 10 of file battle.h.

10 {
11 BTL_AREA_KMR_1 = 0x00,
12 BTL_AREA_KMR_2 = 0x01,
13 BTL_AREA_KMR_3 = 0x02,
14 BTL_AREA_MAC = 0x03,
15 BTL_AREA_HOS = 0x04,
16 BTL_AREA_NOK = 0x05,
17 BTL_AREA_TRD_1 = 0x06,
18 BTL_AREA_TRD_2 = 0x07,
19 BTL_AREA_TRD_3 = 0x08,
20 BTL_AREA_IWA = 0x09,
21 BTL_AREA_SBK = 0x0A,
22 BTL_AREA_ISK_1 = 0x0B,
23 BTL_AREA_ISK_2 = 0x0C,
24 BTL_AREA_MIM = 0x0D,
25 BTL_AREA_ARN = 0x0E,
26 BTL_AREA_DGB = 0x0F,
27 BTL_AREA_OMO = 0x10,
28 BTL_AREA_OMO2 = 0x11,
29 BTL_AREA_OMO3 = 0x12,
30 BTL_AREA_KGR = 0x13,
31 BTL_AREA_JAN = 0x14,
32 BTL_AREA_JAN2 = 0x15,
33 BTL_AREA_KZN = 0x16,
34 BTL_AREA_KZN2 = 0x17,
35 BTL_AREA_FLO = 0x18,
36 BTL_AREA_FLO2 = 0x19,
37 BTL_AREA_TIK = 0x1A,
38 BTL_AREA_TIK2 = 0x1B,
39 BTL_AREA_TIK3 = 0x1C,
40 BTL_AREA_SAM = 0x1D,
41 BTL_AREA_SAM2 = 0x1E,
42 BTL_AREA_PRA = 0x1F,
43 BTL_AREA_PRA2 = 0x20,
44 BTL_AREA_PRA3 = 0x21,
45 BTL_AREA_KPA = 0x22,
46 BTL_AREA_KPA2 = 0x23,
47 BTL_AREA_KPA3 = 0x24,
48 BTL_AREA_KPA4 = 0x25,
49 BTL_AREA_KKJ = 0x26,
50 BTL_AREA_DIG = 0x27,
51 BTL_AREA_UNUSED_28 = 0x28,
52 BTL_AREA_OMO2_1 = 0x29,
53 BTL_AREA_OMO2_2 = 0x2A,
54 BTL_AREA_OMO2_3 = 0x2B,
55 BTL_AREA_OMO2_4 = 0x2C,
56 BTL_AREA_OMO2_5 = 0x2D,
57 BTL_AREA_OMO2_6 = 0x2E,
58};
@ BTL_AREA_KGR
Definition battle.h:30
@ BTL_AREA_ISK_1
Definition battle.h:22
@ BTL_AREA_TRD_2
Definition battle.h:18
@ BTL_AREA_OMO
Definition battle.h:27
@ BTL_AREA_HOS
Definition battle.h:15
@ BTL_AREA_ISK_2
Definition battle.h:23
@ BTL_AREA_TRD_3
Definition battle.h:19
@ BTL_AREA_KMR_3
Definition battle.h:13
@ BTL_AREA_KZN2
Definition battle.h:34
@ BTL_AREA_TIK2
Definition battle.h:38
@ BTL_AREA_OMO2_5
Definition battle.h:56
@ BTL_AREA_KPA4
Definition battle.h:48
@ BTL_AREA_IWA
Definition battle.h:20
@ BTL_AREA_KPA2
Definition battle.h:46
@ BTL_AREA_NOK
Definition battle.h:16
@ BTL_AREA_KZN
Definition battle.h:33
@ BTL_AREA_MIM
Definition battle.h:24
@ BTL_AREA_UNUSED_28
Definition battle.h:51
@ BTL_AREA_KPA3
Definition battle.h:47
@ BTL_AREA_JAN2
Definition battle.h:32
@ BTL_AREA_OMO2_2
Definition battle.h:53
@ BTL_AREA_TIK
Definition battle.h:37
@ BTL_AREA_KKJ
Definition battle.h:49
@ BTL_AREA_SBK
Definition battle.h:21
@ BTL_AREA_KMR_1
Definition battle.h:11
@ BTL_AREA_OMO2_4
Definition battle.h:55
@ BTL_AREA_OMO2_3
Definition battle.h:54
@ BTL_AREA_DIG
Definition battle.h:50
@ BTL_AREA_TRD_1
Definition battle.h:17
@ BTL_AREA_OMO2_6
Definition battle.h:57
@ BTL_AREA_PRA
Definition battle.h:42
@ BTL_AREA_MAC
Definition battle.h:14
@ BTL_AREA_JAN
Definition battle.h:31
@ BTL_AREA_KMR_2
Definition battle.h:12
@ BTL_AREA_TIK3
Definition battle.h:39
@ BTL_AREA_ARN
Definition battle.h:25
@ BTL_AREA_SAM2
Definition battle.h:41
@ BTL_AREA_SAM
Definition battle.h:40
@ BTL_AREA_KPA
Definition battle.h:45
@ BTL_AREA_PRA2
Definition battle.h:43
@ BTL_AREA_FLO
Definition battle.h:35
@ BTL_AREA_OMO2_1
Definition battle.h:52
@ BTL_AREA_OMO2
Definition battle.h:28
@ BTL_AREA_FLO2
Definition battle.h:36
@ BTL_AREA_PRA3
Definition battle.h:44
@ BTL_AREA_OMO3
Definition battle.h:29
@ BTL_AREA_DGB
Definition battle.h:26

◆ BattlePositions

Enumerator
BTL_POS_GROUND_A 
BTL_POS_GROUND_B 
BTL_POS_GROUND_C 
BTL_POS_GROUND_D 
BTL_POS_AIR_A 
BTL_POS_AIR_B 
BTL_POS_AIR_C 
BTL_POS_AIR_D 
BTL_POS_HIGH_A 
BTL_POS_HIGH_B 
BTL_POS_HIGH_C 
BTL_POS_HIGH_D 
BTL_POS_TOP_A 
BTL_POS_TOP_B 
BTL_POS_TOP_C 
BTL_POS_TOP_D 
BTL_POS_CENTER 

Definition at line 60 of file battle.h.

60 {
65 BTL_POS_AIR_A = 4,
66 BTL_POS_AIR_B = 5,
67 BTL_POS_AIR_C = 6,
68 BTL_POS_AIR_D = 7,
71 BTL_POS_HIGH_C = 10,
72 BTL_POS_HIGH_D = 11,
73 BTL_POS_TOP_A = 12,
74 BTL_POS_TOP_B = 13,
75 BTL_POS_TOP_C = 14,
76 BTL_POS_TOP_D = 15,
77 BTL_POS_CENTER = 16,
78};
@ BTL_POS_GROUND_B
Definition battle.h:62
@ BTL_POS_AIR_B
Definition battle.h:66
@ BTL_POS_GROUND_D
Definition battle.h:64
@ BTL_POS_CENTER
Definition battle.h:77
@ BTL_POS_AIR_D
Definition battle.h:68
@ BTL_POS_AIR_A
Definition battle.h:65
@ BTL_POS_AIR_C
Definition battle.h:67
@ BTL_POS_GROUND_A
Definition battle.h:61
@ BTL_POS_HIGH_D
Definition battle.h:72
@ BTL_POS_GROUND_C
Definition battle.h:63
@ BTL_POS_TOP_A
Definition battle.h:73
@ BTL_POS_TOP_D
Definition battle.h:76
@ BTL_POS_HIGH_A
Definition battle.h:69
@ BTL_POS_TOP_C
Definition battle.h:75
@ BTL_POS_HIGH_C
Definition battle.h:71
@ BTL_POS_HIGH_B
Definition battle.h:70
@ BTL_POS_TOP_B
Definition battle.h:74

◆ BattleVars

enum BattleVars
Enumerator
BTL_VAR_DuplighostCopyFlags 
BTL_VAL_Duplighost_HasCopied 
BTL_VAR_HyperSync 
BTL_VAL_HyperSync_None 
BTL_VAL_HyperSync_Done 
BTL_VAL_HyperSync_Active 
BTL_VAR_Magikoopa_LastIndexBoosted 
BTL_VAR_LastCopiedPartner 
BTL_VAR_KoopatrolSummonCount_0 
BTL_VAR_KoopatrolSummonCount_1 
BTL_VAR_KoopatrolSummonCount_2 
BTL_VAR_KoopatrolSummonCount_3 

Definition at line 80 of file battle.h.

80 {
81 BTL_VAR_DuplighostCopyFlags = 0, // used by duplighost
87 // index of the last enemy boosted by a magikoopa
88 // intended to prevent multiple boosts for the same actor in the same turn
89 // selected enemies go from left to right and are reset if none are found
91 BTL_VAR_LastCopiedPartner = 3, // used by duplighost
92 BTL_VAR_KoopatrolSummonCount_0 = 4, // count summons from Koopatrol and 'children' originally from column 0
93 BTL_VAR_KoopatrolSummonCount_1 = 5, // count summons from Koopatrol and 'children' originally from column 1
94 BTL_VAR_KoopatrolSummonCount_2 = 6, // count summons from Koopatrol and 'children' originally from column 2
95 BTL_VAR_KoopatrolSummonCount_3 = 7, // count summons from Koopatrol and 'children' originally from column 3
96};
@ BTL_VAR_KoopatrolSummonCount_2
Definition battle.h:94
@ BTL_VAL_HyperSync_Active
Definition battle.h:86
@ BTL_VAR_DuplighostCopyFlags
Definition battle.h:81
@ BTL_VAR_KoopatrolSummonCount_0
Definition battle.h:92
@ BTL_VAL_HyperSync_Done
Definition battle.h:85
@ BTL_VAR_LastCopiedPartner
Definition battle.h:91
@ BTL_VAR_Magikoopa_LastIndexBoosted
Definition battle.h:90
@ BTL_VAR_KoopatrolSummonCount_1
Definition battle.h:93
@ BTL_VAL_HyperSync_None
Definition battle.h:84
@ BTL_VAL_Duplighost_HasCopied
Definition battle.h:82
@ BTL_VAR_HyperSync
Definition battle.h:83
@ BTL_VAR_KoopatrolSummonCount_3
Definition battle.h:95

◆ CommonActorVars

Enumerator
AVAR_DryBones_Collapsed 
AVAR_SpearGuy_Generation 
AVAR_JungleFuzzy_Generation 

Definition at line 99 of file battle.h.

99 {
103};
@ AVAR_JungleFuzzy_Generation
Definition battle.h:102
@ AVAR_SpearGuy_Generation
Definition battle.h:101
@ AVAR_DryBones_Collapsed
Definition battle.h:100

Function Documentation

◆ load_demo_battle()

void load_demo_battle ( u32 index)

Definition at line 190 of file battle.c.

190 {
191 PlayerData* playerData = &gPlayerData;
192 u32 mode;
193 s32 battleID;
194
199
207 clear_npcs();
216 clear_entity_data(TRUE);
225
226 switch (index) {
227 case 0: // hammer first strike on Fuzzies
229 mode = 0;
230 playerData->hasActionCommands = FALSE;
231 battleID = BTL_DIG_FORMATION_00;
232 break;
233 case 1: // jump on Monty Mole
235 mode = 0;
236 playerData->curPartner = PARTNER_BOW;
237 battleID = BTL_DIG_FORMATION_01;
238 break;
239 case 2: // Parakarry shell shot against Pokey
241 mode = 0;
242 playerData->curPartner = PARTNER_PARAKARRY;
244 battleID = BTL_DIG_FORMATION_02;
245 break;
246 case 3: // Thunder Rage on Shy Guys at the slot machine
248 mode = 0;
249 playerData->curPartner = PARTNER_WATT;
250 battleID = BTL_DIG_FORMATION_03;
251 break;
252 case 4: // stomped by Tubba Blubba
254 mode = 0;
255 playerData->curPartner = PARTNER_KOOPER;
257 battleID = BTL_DIG_FORMATION_04;
258 break;
259 default:
261 mode = 2;
262 battleID = BTL_DIG_FORMATION_00;
263 }
264
267
268 switch (mode) {
269 case 0:
276 break;
277 case 1:
282 break;
283 case 2:
288 break;
289 case 3:
293 break;
294 case 4:
299 break;
300 }
301
307 gOverrideFlags &= ~GLOBAL_OVERRIDES_DISABLE_DRAW_FRAME;
308 load_battle(battleID);
309}
void set_battle_stage(s32 stageID)
Definition battle.c:137
void setup_demo_player(void)
Definition battle.c:145
void reset_battle_status(void)
Definition battle.c:99
void load_battle(s32 battleID)
Definition battle.c:129
@ BTL_DIG_FORMATION_02
@ BTL_DIG_FORMATION_01
@ BTL_DIG_FORMATION_03
@ BTL_DIG_FORMATION_00
@ BTL_DIG_FORMATION_04
@ OVERLAY_TYPE_9
Definition enums.h:2397
@ DEBUG_CONTACT_NONE
Definition enums.h:4267
@ DEMO_BTL_FLAG_10
Definition enums.h:3546
@ DEMO_BTL_FLAG_20
Definition enums.h:3547
@ DEMO_BTL_FLAG_ENEMY_ACTING
Definition enums.h:3545
@ DEMO_BTL_FLAG_ENABLED
Definition enums.h:3543
@ DEMO_BTL_FLAG_40
Definition enums.h:3548
@ DEMO_BTL_FLAG_PARTNER_ACTING
Definition enums.h:3544
@ ENCOUNTER_TRIGGER_JUMP
Definition enums.h:269
@ ENCOUNTER_TRIGGER_HAMMER
Definition enums.h:271
@ ENCOUNTER_TRIGGER_NONE
Definition enums.h:268
@ ENCOUNTER_TRIGGER_PARTNER
Definition enums.h:273
@ CONTEXT_WORLD
Definition enums.h:3529
@ PARTNER_WATT
Definition enums.h:2891
@ PARTNER_BOW
Definition enums.h:2894
@ PARTNER_PARAKARRY
Definition enums.h:2889
@ PARTNER_KOOPER
Definition enums.h:2887
@ PLAYER_SPRITES_MARIO_WORLD
Definition enums.h:6346
@ FIRST_STRIKE_NONE
Definition enums.h:3458
@ FIRST_STRIKE_ENEMY
Definition enums.h:3460
@ FIRST_STRIKE_PLAYER
Definition enums.h:3459
void clear_script_list(void)
void clear_item_entity_data(void)
void create_cameras(void)
Definition cam_main.c:255
void clear_animator_list(void)
Definition animator.c:222
void clear_model_data(void)
Definition model.c:2364
void clear_trigger_data(void)
Definition trigger.c:13
void clear_sprite_shading_data(void)
void clear_entity_data(b32)
Definition entity.c:787
s32 evt_set_variable(Evt *script, Bytecode var, s32 value)
Definition evt.c:1847
void set_screen_overlay_params_front(u8, f32)
void clear_printers(void)
Definition msg.c:196
void clear_player_status(void)
Definition 77480.c:807
void clear_effect_data(void)
Definition effects.c:37
HeapNode * general_heap_create(void)
Definition heap.c:6
void clear_worker_list(void)
Definition worker.c:10
void clear_player_data(void)
Definition inventory.c:49
void func_80138188(void)
void clear_entity_models(void)
void reset_background_settings(void)
Definition background.c:33
void initialize_status_bar(void)
Definition inventory.c:477
void hud_element_clear_cache(void)
char unk_07
Definition npc.h:370
void clear_npcs(void)
Definition npc.c:60
void clear_encounter_status(void)
Definition npc.c:2224
EncounterStatus gCurrentEncounter
Definition encounter.c:176
s8 instigatorValue
Definition npc.h:378
s8 firstStrikeType
Definition npc.h:367
@ GF_Tutorial_SwapTurnOrder
void spr_init_sprites(s32 playerSpriteSet)
Definition sprite.c:764
#define BTL_STAGE_DEFAULT
Definition stage_names.h:3
s32 gOverrideFlags
Definition main_loop.c:11
GameStatus * gGameStatusPtr
Definition main_loop.c:32
PlayerData gPlayerData
Definition 77480.c:40

Referenced by state_step_demo().

◆ create_actor()

Actor * create_actor ( Formation formation)

Definition at line 1676 of file 190B20.c.

1676 {
1677 BattleStatus* battleStatus = &gBattleStatus;
1678 Actor* actor;
1679 ActorBlueprint* formationActor;
1680 ActorPart* part;
1681 ActorPartBlueprint* partBP;
1682 Evt* takeTurnScript;
1683 s32 partCount;
1684 f32 x, y, z;
1685 DecorationTable* decorations;
1686 s32 i, j, k;
1687
1688 if (formation->home.index >= EVT_LIMIT) {
1689 x = StandardActorHomePositions[formation->home.index].x;
1690 y = StandardActorHomePositions[formation->home.index].y;
1691 z = StandardActorHomePositions[formation->home.index].z;
1692 } else {
1693 x = formation->home.vec->x;
1694 y = formation->home.vec->y;
1695 z = formation->home.vec->z;
1696 }
1697
1698 formationActor = formation->actor;
1699 partCount = formationActor->partCount;
1700
1701 for (i = 0; i < ARRAY_COUNT(battleStatus->enemyActors); i++) {
1702 if (battleStatus->enemyActors[i] == NULL) {
1703 break;
1704 }
1705 }
1706
1707 actor = battleStatus->enemyActors[i] = heap_malloc(sizeof(*actor));
1708
1709 ASSERT(actor != NULL);
1710
1711 actor->unk_134 = battleStatus->unk_93++;
1712 actor->footStepCounter = 0;
1713 actor->actorBlueprint = formationActor;
1714 actor->actorType = formationActor->type;
1715 actor->flags = formationActor->flags;
1716 actor->homePos.x = actor->curPos.x = x;
1717 actor->homePos.y = actor->curPos.y = y;
1718 actor->homePos.z = actor->curPos.z = z;
1719 actor->headOffset.x = 0;
1720 actor->headOffset.y = 0;
1721 actor->headOffset.z = 0;
1722 actor->maxHP = actor->curHP = formationActor->maxHP;
1723 actor->numParts = partCount;
1724 actor->idleSource = NULL;
1725 actor->takeTurnSource = formationActor->initScript;
1726 actor->handleEventSource = NULL;
1727 actor->handlePhaseSource = NULL;
1728 actor->idleScript = NULL;
1729 actor->takeTurnScript = NULL;
1730 actor->handleEventScript = NULL;
1731 actor->turnPriority = formation->priority;
1732 actor->enemyIndex = i;
1733 actor->yaw = 0.0f;
1734 actor->rot.x = 0.0f;
1735 actor->rot.y = 0.0f;
1736 actor->rot.z = 0.0f;
1737 actor->rotPivotOffset.x = 0;
1738 actor->rotPivotOffset.y = 0;
1739 actor->rotPivotOffset.z = 0;
1740 actor->scale.x = 1.0f;
1741 actor->scale.y = 1.0f;
1742 actor->scale.z = 1.0f;
1743 actor->scaleModifier.x = 1.0f;
1744 actor->scaleModifier.y = 1.0f;
1745 actor->scaleModifier.z = 1.0f;
1746 actor->verticalRenderOffset = 0;
1747 actor->extraCoinBonus = 0;
1748 actor->size.x = formationActor->size.x;
1749 actor->size.y = formationActor->size.y;
1750 actor->scalingFactor = 1.0f;
1751 actor->statusIconOffset.x = 0;
1752 actor->statusIconOffset.y = 0;
1753 actor->statusTextOffset.x = 0;
1754 actor->statusTextOffset.y = 0;
1755 actor->healthBarOffset.x = 0;
1756 actor->healthBarOffset.y = 0;
1757 actor->healthBarHideTime = 0;
1758 actor->attackResultEffect = NULL;
1759 actor->actionRatingCombo = 0;
1760 actor->actionRatingTime = 0;
1761
1762 actor->healthBarPos.x = actor->curPos.x + formationActor->healthBarOffset.x;
1763 actor->healthBarPos.y = actor->curPos.y + formationActor->healthBarOffset.y;
1764 actor->healthBarPos.z = actor->curPos.z;
1765 if (actor->flags & ACTOR_FLAG_UPSIDE_DOWN) {
1766 actor->healthBarPos.y = actor->curPos.y - actor->size.y - formationActor->healthBarOffset.y;
1767 }
1768
1769 actor->statusTable = formationActor->statusTable;
1770 actor->debuff = 0;
1771 actor->debuffDuration = 0;
1772 actor->staticStatus = 0;
1773 actor->staticDuration = 0;
1774 actor->stoneStatus = 0;
1775 actor->stoneDuration = 0;
1776 actor->koStatus = 0;
1777 actor->koDuration = 0;
1778 actor->transparentStatus = 0;
1779 actor->transparentDuration = 0;
1780 actor->isGlowing = FALSE;
1781 actor->unk_21E = 0;
1782 actor->disableDismissTimer = 0;
1783 actor->attackBoost = 0;
1784 actor->defenseBoost = 0;
1785 actor->chillOutAmount = 0;
1786 actor->chillOutTurns = 0;
1787 actor->statusAfflicted = 0;
1788 actor->actorTypeData1[0] = bActorSoundTable[actor->actorType].walk[0];
1789 actor->actorTypeData1[1] = bActorSoundTable[actor->actorType].walk[1];
1790 actor->actorTypeData1[2] = bActorSoundTable[actor->actorType].fly[0];
1791 actor->actorTypeData1[3] = bActorSoundTable[actor->actorType].fly[1];
1792 actor->actorTypeData1[4] = bActorSoundTable[actor->actorType].jump;
1793 actor->actorTypeData1[5] = bActorSoundTable[actor->actorType].hurt;
1794 actor->actorTypeData1b[0] = bActorSoundTable[actor->actorType].delay[0];
1795 actor->actorTypeData1b[1] = bActorSoundTable[actor->actorType].delay[1];
1796
1797 for (i = 0; i < ARRAY_COUNT(actor->loopingSoundID); i++) {
1798 actor->loopingSoundID[i] = 0;
1799 }
1800
1801 actor->state.varTable[0] = formation->var0;
1802 actor->state.varTable[1] = formation->var1;
1803 actor->state.varTable[2] = formation->var2;
1804 actor->state.varTable[3] = formation->var3;
1806 actor->instigatorValue = 0;
1807 part = heap_malloc(sizeof(*part));
1808 actor->partsTable = part;
1809 ASSERT(part != NULL);
1810
1811 for (j = 0; j < partCount; j++) {
1812 ActorPartBlueprint* actorPartBP = &formationActor->partsData[j];
1813
1814 part->decorationTable = NULL;
1815 part->staticData = actorPartBP;
1816 part->flags = actorPartBP->flags | ACTOR_PART_FLAG_NO_SHADOW;
1817 part->targetFlags = 0;
1818
1819 part->partOffsetFloat.x = part->partOffset.x = actorPartBP->posOffset.x;
1820 part->partOffsetFloat.y = part->partOffset.y = actorPartBP->posOffset.y;
1821 part->partOffsetFloat.z = part->partOffset.z = actorPartBP->posOffset.z;
1822
1823 part->visualOffset.x = 0;
1824 part->visualOffset.y = 0;
1825 part->visualOffset.z = 0;
1826
1827 part->absolutePos.x = actor->curPos.x;
1828 part->absolutePos.y = actor->curPos.y;
1829 part->absolutePos.z = actor->curPos.z;
1830 part->curPos.x = actor->curPos.x;
1831 part->curPos.y = actor->curPos.y;
1832 part->curPos.z = actor->curPos.z;
1833 part->defenseTable = actorPartBP->defenseTable;
1834 part->idleAnimations = actorPartBP->idleAnimations;
1835 part->eventFlags = actorPartBP->eventFlags;
1836 part->elementalImmunities = actorPartBP->elementImmunityFlags;
1837 part->opacity = actorPartBP->opacity;
1838 if (part->opacity < 255) {
1840 }
1841 part->size.y = actor->size.y;
1842 part->size.x = actor->size.x;
1843 part->yaw = 0.0f;
1844 part->targetOffset.x = actorPartBP->targetOffset.x;
1845 part->targetOffset.y = actorPartBP->targetOffset.y;
1846 part->targetPriorityOffset = 0;
1847 part->projectileTargetOffset.x = actorPartBP->projectileTargetOffset.x;
1848 part->projectileTargetOffset.y = actorPartBP->projectileTargetOffset.y;
1849 part->rot.x = 0.0f;
1850 part->rot.y = 0.0f;
1851 part->rot.z = 0.0f;
1852 part->rotPivotOffset.x = 0;
1853 part->rotPivotOffset.y = 0;
1854 part->rotPivotOffset.z = 0;
1855 part->scale.x = 1.0f;
1856 part->scale.y = 1.0f;
1857 part->scale.z = 1.0f;
1858 part->verticalStretch = 1;
1859 part->palAnimPosOffset[0] = 0;
1860 part->palAnimPosOffset[1] = 0;
1861 part->partTypeData[0] = bActorSoundTable[actor->actorType].walk[0];
1862 part->partTypeData[1] = bActorSoundTable[actor->actorType].walk[1];
1863 part->partTypeData[2] = bActorSoundTable[actor->actorType].fly[0];
1864 part->partTypeData[3] = bActorSoundTable[actor->actorType].fly[1];
1865 part->partTypeData[4] = bActorSoundTable[actor->actorType].jump;
1866 part->partTypeData[5] = bActorSoundTable[actor->actorType].hurt;
1867 part->actorTypeData2b[0] = bActorSoundTable[actor->actorType].delay[0];
1868 part->actorTypeData2b[1] = bActorSoundTable[actor->actorType].delay[1];
1869
1870 if (part->idleAnimations != NULL && !(part->flags & ACTOR_PART_FLAG_NO_DECORATIONS)) {
1871 part->decorationTable = heap_malloc(sizeof(*decorations));
1872 decorations = part->decorationTable;
1873 ASSERT(decorations != NULL);
1874
1876 decorations->glowState = GLOW_PAL_OFF;
1877 decorations->flashState = 0;
1878 decorations->flashEnabled = FLASH_PAL_OFF;
1879 decorations->blurUnused = 0;
1880 decorations->blurBufferPos = 0;
1881
1882 for (k = 0; k < ARRAY_COUNT(decorations->posX); k++) {
1883 decorations->posX[k] = actor->curPos.x;
1884 decorations->posY[k] = actor->curPos.y;
1885 decorations->posZ[k] = actor->curPos.z;
1886 }
1887
1888 decorations->blurDrawCount = 3;
1889 decorations->blurEnableCount = 0;
1890 decorations->blurDisableDelay = 0;
1891
1892 for (k = 0; k < ARRAY_COUNT(decorations->effect); k++) {
1893 decorations->effect[k] = NULL;
1894 decorations->type[k] = 0;
1895 }
1896
1897 }
1898
1900 part->movement = heap_malloc(sizeof(*part->movement));
1901 ASSERT(part->movement != NULL);
1902 }
1903
1904 if (actor->flags & ACTOR_FLAG_TARGET_ONLY) {
1906 }
1907
1908 part->animationRate = 1.0f;
1909 part->curAnimation = 0;
1910 part->spriteInstanceID = -1;
1911
1912 if (part->idleAnimations != NULL) {
1913 part->curAnimation = get_npc_anim_for_status(part->idleAnimations, 1) & ~SPRITE_ID_TAIL_ALLOCATE;
1915 }
1916
1917 if (j + 1 >= partCount) {
1918 part->nextPart = NULL;
1919 continue;
1920 }
1921
1922 part->nextPart = heap_malloc(sizeof(*part->nextPart));
1923 part = part->nextPart;
1924 if (part == NULL) {
1925 PANIC();
1926 }
1927
1928 part->nextPart = NULL;
1929 }
1930
1931 actor->healthFraction = 25;
1932 actor->actorID = actor->enemyIndex | ACTOR_CLASS_ENEMY;
1933 takeTurnScript = start_script(actor->takeTurnSource, EVT_PRIORITY_A, 0);
1934 actor->takeTurnScriptID = takeTurnScript->id;
1935 takeTurnScript->owner1.enemyID = actor->enemyIndex | ACTOR_CLASS_ENEMY;
1936 actor->shadow.id = create_shadow_type(SHADOW_VARYING_CIRCLE, actor->curPos.x, actor->curPos.y, actor->curPos.z);
1937 actor->shadowScale = actor->size.x / 24.0;
1938 actor->disableEffect = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
1939 actor->icePillarEffect = NULL;
1941 return actor;
1942}
s32 get_npc_anim_for_status(AnimID *, s32)
Definition 190B20.c:1944
Vec2b statusIconOffset
struct EffectInstance * disableEffect
struct EffectInstance * attackResultEffect
ActorPartBlueprint * staticData
struct Evt * takeTurnScript
s16 palAnimPosOffset[2]
struct EffectInstance * effect[2]
s8 actionRatingCombo
u32 * idleAnimations
s8 transparentStatus
struct ActorPartMovement * movement
EvtScript * handleEventSource
Vec2b statusTextOffset
EvtScript * idleSource
Vec2b healthBarOffset
s8 disableDismissTimer
f32 shadowScale
struct ActorBlueprint * actorBlueprint
s32 elementalImmunities
s32 actorTypeData1[6]
s16 targetPriorityOffset
s8 healthFraction
Vec2b projectileTargetOffset
s8 verticalRenderOffset
u8 footStepCounter
Vec3s headOffset
f32 scalingFactor
struct Evt * idleScript
union Actor::@38 shadow
s8 extraCoinBonus
ActorState state
s32 partTypeData[6]
struct Evt * handleEventScript
Vec3f partOffsetFloat
struct ActorPart * partsTable
s32 takeTurnScriptID
s16 actorTypeData1b[2]
Vec3s rotPivotOffset
EvtScript * handlePhaseSource
Vec3f scaleModifier
struct EffectInstance * icePillarEffect
Vec3s healthBarPos
s32 loopingSoundID[2]
s8 chillOutAmount
Vec3f homePos
Vec2bu size
union Evt::@8 owner1
Initially -1.
s16 hudElementDataIndex
EvtScript * takeTurnSource
Vec3f curPos
s16 actorTypeData2b[2]
s8 instigatorValue
s8 healthBarHideTime
s8 statusAfflicted
struct ActorPart * nextPart
struct DecorationTable * decorationTable
s8 staticDuration
s32 * statusTable
s8 debuffDuration
Vec3s rotPivotOffset
s8 transparentDuration
s8 actionRatingTime
Vec3f scale
#define ASSERT(condition)
@ ACTOR_CLASS_ENEMY
Definition enums.h:2079
@ GLOW_PAL_OFF
Definition enums.h:2258
@ ACTOR_PAL_ADJUST_NONE
Definition enums.h:2241
@ SHADOW_VARYING_CIRCLE
Definition enums.h:2535
@ FLASH_PAL_OFF
Definition enums.h:2270
@ RENDER_MODE_SURFACE_XLU_LAYER3
Definition enums.h:3299
@ RENDER_MODE_ALPHATEST
Definition enums.h:3276
@ ACTOR_FLAG_UPSIDE_DOWN
HP bar offset below actor (e.g. Swooper when upside-down).
Definition enums.h:3331
@ ACTOR_FLAG_TARGET_ONLY
Battle ends even if undefeated. No turn.
Definition enums.h:3334
@ ACTOR_PART_FLAG_TARGET_ONLY
Definition enums.h:3359
@ ACTOR_PART_FLAG_SKIP_MOVEMENT_ALLOC
Definition enums.h:3366
@ ACTOR_PART_FLAG_NO_SHADOW
Definition enums.h:3352
@ ACTOR_PART_FLAG_NO_DECORATIONS
Definition enums.h:3351
@ EVT_PRIORITY_A
Definition evt.h:153
s32 create_status_icon_set(void)
Evt * start_script(EvtScript *source, s32 priority, s32 initialState)
s32 create_shadow_type(s32 type, f32 x, f32 y, f32 z)
Definition entity.c:1528
void * heap_malloc(s32 size)
Definition heap.c:34
#define ARRAY_COUNT(arr)
Definition macros.h:40
#define PANIC()
Definition macros.h:55
#define EVT_LIMIT
Definition macros.h:47
s32 spr_load_npc_sprite(s32 animID, u32 *extraAnimList)
Definition sprite.c:1026
s32 walk[2]
Definition battle.h:235
ActorSounds bActorSoundTable[]
struct ActorPartBlueprint * partsData
Definition battle.h:137
s16 delay[2]
Number of frames to wait between walk/fly sounds. Negative values are in distance.
Definition battle.h:239
s32 fly[2]
Definition battle.h:236
EvtScript * initScript
Definition battle.h:138
Vec2b healthBarOffset
Definition battle.h:149
s32 * statusTable
Definition battle.h:139
struct Actor * enemyActors[24]
BattleStatus gBattleStatus
Definition battle.c:11
Vec3s StandardActorHomePositions[]
Definition actors.c:188

Referenced by btl_state_update_normal_start().

Variable Documentation

◆ bActorNames

s32 bActorNames[]
extern

◆ gBattleAreas

BattleArea gBattleAreas[0x30]
extern

Definition at line 50 of file battle.c.

50 {
51 [BTL_AREA_KMR_1] BTL_AREA(kmr_part_1, "エリア KMR その1"),
52 [BTL_AREA_KMR_2] BTL_AREA(kmr_part_2, "エリア KMR その2"),
53 [BTL_AREA_KMR_3] BTL_AREA(kmr_part_3, "エリア KMR その3"),
54 [BTL_AREA_MAC] BTL_AREA(mac, "エリア MAC"),
55 [BTL_AREA_HOS] BTL_AREA(hos, "エリア HOS"),
56 [BTL_AREA_NOK] BTL_AREA(nok, "エリア NOK"),
57 [BTL_AREA_TRD_1] BTL_AREA(trd_part_1, "エリア TRD その1"),
58 [BTL_AREA_TRD_2] BTL_AREA(trd_part_2, "エリア TRD その2"),
59 [BTL_AREA_TRD_3] BTL_AREA(trd_part_3, "エリア TRD その3"),
60 [BTL_AREA_IWA] BTL_AREA(iwa, "エリア IWA"),
61 [BTL_AREA_SBK] BTL_AREA(sbk, "エリア SBK"),
62 [BTL_AREA_ISK_1] BTL_AREA(isk_part_1, "エリア ISK その1"),
63 [BTL_AREA_ISK_2] BTL_AREA(isk_part_2, "エリア ISK その2"),
64 [BTL_AREA_MIM] BTL_AREA(mim, "エリア MIM"),
65 [BTL_AREA_ARN] BTL_AREA(arn, "エリア ARN"),
66 [BTL_AREA_DGB] BTL_AREA(dgb, "エリア DGB"),
67 [BTL_AREA_OMO] BTL_AREA(omo, "エリア OMO"),
68 [BTL_AREA_OMO2] BTL_AREA(omo2, "エリア OMO2"),
69 [BTL_AREA_OMO3] BTL_AREA(omo3, "エリア OMO3"),
70 [BTL_AREA_KGR] BTL_AREA(kgr, "エリア KGR"),
71 [BTL_AREA_JAN] BTL_AREA(jan, "エリア JAN"),
72 [BTL_AREA_JAN2] BTL_AREA(jan2, "エリア JAN2"),
73 [BTL_AREA_KZN] BTL_AREA(kzn, "エリア KZN"),
74 [BTL_AREA_KZN2] BTL_AREA_DMA(kzn2, "エリア KZN2"),
75 [BTL_AREA_FLO] BTL_AREA(flo, "エリア FLO"),
76 [BTL_AREA_FLO2] BTL_AREA(flo2, "エリア FLO2"),
77 [BTL_AREA_TIK] BTL_AREA(tik, "エリア TIK"),
78 [BTL_AREA_TIK2] BTL_AREA(tik2, "エリア TIK2"),
79 [BTL_AREA_TIK3] BTL_AREA(tik3, "エリア TIK3"),
80 [BTL_AREA_SAM] BTL_AREA(sam, "エリア SAM"),
81 [BTL_AREA_SAM2] BTL_AREA(sam2, "エリア SAM2"),
82 [BTL_AREA_PRA] BTL_AREA(pra, "エリア PRA"),
83 [BTL_AREA_PRA2] BTL_AREA(pra2, "エリア PRA2"),
84 [BTL_AREA_PRA3] BTL_AREA(pra3, "エリア PRA3"),
85 [BTL_AREA_KPA] BTL_AREA(kpa, "エリア KPA"),
86 [BTL_AREA_KPA2] BTL_AREA(kpa2, "エリア KPA2"),
87 [BTL_AREA_KPA3] BTL_AREA(kpa3, "エリア KPA3"),
88 [BTL_AREA_KPA4] BTL_AREA(kpa4, "エリア KPA4"),
89 [BTL_AREA_KKJ] BTL_AREA(kkj, "エリア KKJ"),
90 [BTL_AREA_DIG] BTL_AREA(dig, "エリア DIG"),
91 [BTL_AREA_OMO2_1] BTL_AREA_AUX(omo2_1, "エリア OMO2_1"),
92 [BTL_AREA_OMO2_2] BTL_AREA_AUX(omo2_2, "エリア OMO2_2"),
93 [BTL_AREA_OMO2_3] BTL_AREA_AUX(omo2_3, "エリア OMO2_3"),
94 [BTL_AREA_OMO2_4] BTL_AREA_AUX(omo2_4, "エリア OMO2_4"),
95 [BTL_AREA_OMO2_5] BTL_AREA_AUX(omo2_5, "エリア OMO2_5"),
96 [BTL_AREA_OMO2_6] BTL_AREA_AUX(omo2_6, "エリア OMO2_6"),
97};
#define BTL_AREA_DMA(id, jpName)
Definition battle.c:32
#define BTL_AREA_AUX(id, jpName)
Definition battle.c:43
#define BTL_AREA(id, jpName)
Definition battle.c:22

Referenced by load_battle_section().

◆ bActorSoundTable

◆ gCurrentBattlePtr

◆ bActorOffsets

ActorOffsets bActorOffsets[]
extern