papermario
Decompilation of Paper Mario
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
Loading...
Searching...
No Matches
Data Structures
|
Macros
|
Functions
huff_n_puff.c File Reference
Data Structures
struct
SuctionPath
Macros
#
define
NAMESPACE
A
(
huff_n_puff
)
#
define
MAX_RUFF_PUFFS
10
#
define
FOR_CHILDREN_ORDERED
(
template
)
#
define
FOR_CHILDREN_SCATTERED
(
template
)
#
define
HNP_REGISTER_CHILD
(
idx
)
#
define
HNP_KILL_CHILD
(
idx
)
#
define
HNP_KILL_CHILD
(
idx
)
#
define
HNP_GET_SPEAKER
(
idx
)
#
define
HNP_GET_SPEAKER
(
idx
)
#
define
HNP_GET_SPEAKER
(
idx
)
#
define
HNP_GET_SPEAKER
(
idx
)
#
define
HNP_LOAD_SUCTION_PATH
(
idx
)
#
define
HNP_ADD_HEAL_VALUE
(
idx
)
#
define
HNP_INHALE_CHILD
(
idx
)
#
define
HNP_GROUP_ASCEND
(
idx
)
#
define
HNP_GROUP_DROP
(
idx
)
#
define
HNP_IMPACT_JIGGLE
(
idx
)
#
define
HNP_RETURN_HOME
(
idx
)
#
define
HNP_ADD_CHILD
(
idx
)
#
define
HNP_RETURN_HOME
(
idx
)
#
define
HNP_SWARM_MOVE_UP
(
idx
)
#
define
HNP_ADD_CHILD
(
idx
)
#
define
HNP_SWARM_SURROUND_PLAYER
(
idx
)
#
define
HNP_ADD_CHILD
(
idx
)
#
define
HNP_SQUEEZE_PLAYER
(
idx
)
#
define
HNP_SCATTER_PUFF
(
idx
)
#
define
HNP_RETURN_HOME
(
idx
)
#
define
HNP_SCATTER_PUFF
(
idx
)
#
define
HNP_RETURN_HOME
(
idx
)
Functions
ActorBlueprint
A
(
tuff_puff
)
ActorBlueprint
A
(
huff_n_puff
)
Data Structure Documentation
◆
SuctionPath
struct SuctionPath
Data Fields
Vec3f
end
Vec3f
mid
Vec3f
start
Macro Definition Documentation
◆
FOR_CHILDREN_ORDERED
#
define
FOR_CHILDREN_ORDERED
(
template
)
Value:
template
(0) \
template
(1)
\
template
(2)
\
template
(3)
\
template
(4)
\
template
(5)
\
template
(6)
\
template
(7)
\
template
(8)
\
template
(9)
PopupMenu_SelectedIndex
BSS s32 PopupMenu_SelectedIndex
Definition
8a860_len_3f30.c:84
◆
FOR_CHILDREN_SCATTERED
#
define
FOR_CHILDREN_SCATTERED
(
template
)
Value:
template
(4) \
template
(9)
\
template
(3)
\
template
(5)
\
template
(1)
\
template
(0)
\
template
(8)
\
template
(2)
\
template
(7)
\
template
(6)
◆
HNP_ADD_CHILD
[1/3]
#
define
HNP_ADD_CHILD
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Add
(
LVarA
, 1) \
EndIf
EndIf
#define EndIf
Marks the end of an if statement or an else block.
Definition
macros.h:310
IfFlag
#define IfFlag(LVAR, RVAR)
Marks the beginning of an if statement that only executes if the RVAR flag is set on LVAR,...
Definition
macros.h:300
LVarA
#define LVarA
Definition
macros.h:154
LVar0
#define LVar0
Definition
macros.h:144
◆
HNP_ADD_CHILD
[2/3]
#
define
HNP_ADD_CHILD
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Add
(
LVarA
, 1) \
EndIf
◆
HNP_ADD_CHILD
[3/3]
#
define
HNP_ADD_CHILD
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Add
(
LVar9
, 1) \
EndIf
LVar9
#define LVar9
Definition
macros.h:153
◆
HNP_ADD_HEAL_VALUE
#
define
HNP_ADD_HEAL_VALUE
(
idx
)
Value:
IfFlag
(
LVar9
, 1 <<
idx
)
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_HealValue
,
LVarB
)
\
Add
(
LVarA
,
LVarB
) \
EndIf
ArrayVar
#define ArrayVar(INDEX)
User Word.
Definition
macros.h:118
LVarB
#define LVarB
Definition
macros.h:155
◆
HNP_GET_SPEAKER
[1/4]
#
define
HNP_GET_SPEAKER
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Set
(
LVar0
,
ArrayVar
(
idx
))
\
Goto
(0) \
EndIf
◆
HNP_GET_SPEAKER
[2/4]
#
define
HNP_GET_SPEAKER
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Set
(
LVar0
,
ArrayVar
(
idx
))
\
Goto
(0) \
EndIf
◆
HNP_GET_SPEAKER
[3/4]
#
define
HNP_GET_SPEAKER
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Set
(
LVar0
,
ArrayVar
(
idx
))
\
Goto
(0) \
EndIf
◆
HNP_GET_SPEAKER
[4/4]
#
define
HNP_GET_SPEAKER
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Set
(
LVar0
,
ArrayVar
(
idx
))
\
Goto
(0) \
EndIf
◆
HNP_GROUP_ASCEND
#
define
HNP_GROUP_ASCEND
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Call
(
UseIdleAnimation
,
ArrayVar
(
idx
),
FALSE
)
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar1
)
\
IfEq
(
LVar1
, 0)
\
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim09
)
\
Else \
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim0B
)
\
EndIf \
Thread \
Mod
(
LVar9
, 2)
\
IfEq
(
LVar9
, 0)
\
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_A
)
\
Else \
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_B
)
\
EndIf \
Call
(
GetActorPos
,
ArrayVar
(
idx
),
LVarD
,
LVarE
,
LVarF
)
\
Call
(
SetGoalPos
,
ArrayVar
(
idx
),
LVarA
,
LVarB
,
LVarF
)
\
Call
(
FlyToGoal
,
ArrayVar
(
idx
), 20, 10,
EASING_QUADRATIC_IN
)
\
Set
(
LVarD
,
LVarA
)
\
Set
(
LVarE
,
LVarC
)
\
Set
(
LVarF
,
idx
)
\
Mul
(
LVarF
, 36)
\
Add
(
LVarF
, -90)
\
Call
(
AddVectorPolar
,
LVarD
,
LVarE
,
Float
(60.0),
LVarF
)
\
Call
(
SetActorPos
,
ArrayVar
(
idx
),
LVarD
,
LVarB
,
LVarE
)
\
EndThread \
Add
(
LVar9
, 1)
\
Wait
(8) \
EndIf
EASING_QUADRATIC_IN
@ EASING_QUADRATIC_IN
Definition
enums.h:511
SOUND_RUFF_PUFF_FLY_B
@ SOUND_RUFF_PUFF_FLY_B
Definition
enums.h:1285
SOUND_RUFF_PUFF_FLY_A
@ SOUND_RUFF_PUFF_FLY_A
Definition
enums.h:1284
AddVectorPolar
ApiStatus AddVectorPolar(Evt *script, b32 isInitialCall)
LVarF
#define LVarF
Definition
macros.h:159
LVarC
#define LVarC
Definition
macros.h:156
Float
#define Float(DOUBLE)
Definition
macros.h:47
LVar1
#define LVar1
Definition
macros.h:145
LVarD
#define LVarD
Definition
macros.h:157
LVarE
#define LVarE
Definition
macros.h:158
◆
HNP_GROUP_DROP
#
define
HNP_GROUP_DROP
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Thread \
Call
(
GetActorPos
,
ArrayVar
(
idx
),
LVar1
,
LVar2
,
LVar3
)
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar4
)
\
IfEq
(
LVar4
, 0)
\
Set
(
LVar2
, 10)
\
Else \
Set
(
LVar2
, 14)
\
EndIf \
Call
(
SetActorSounds
,
ArrayVar
(
idx
),
ACTOR_SOUND_FLY
,
SOUND_NONE
,
SOUND_NONE
)
\
Call
(
SetGoalPos
,
ArrayVar
(
idx
),
LVar1
,
LVar2
,
LVar3
)
\
Call
(
FlyToGoal
,
ArrayVar
(
idx
), 20, 0,
EASING_CUBIC_IN
)
\
Call
(
ResetActorSounds
,
ArrayVar
(
idx
),
ACTOR_SOUND_FLY
) \
EndThread \
EndIf
ACTOR_SOUND_FLY
@ ACTOR_SOUND_FLY
Definition
enums.h:2064
EASING_CUBIC_IN
@ EASING_CUBIC_IN
Definition
enums.h:512
SOUND_NONE
@ SOUND_NONE
Definition
enums.h:550
LVar2
#define LVar2
Definition
macros.h:146
LVar4
#define LVar4
Definition
macros.h:148
LVar3
#define LVar3
Definition
macros.h:147
◆
HNP_IMPACT_JIGGLE
#
define
HNP_IMPACT_JIGGLE
(
idx
)
◆
HNP_INHALE_CHILD
#
define
HNP_INHALE_CHILD
(
idx
)
Value:
IfFlag
(
LVar9
, 1 <<
idx
)
\
Set
(
LVar0
,
ArrayVar
(
idx
))
\
ExecGetTID
(N(
EVS_RuffPuff_Inhale
),
LVar7
)
\
Add
(
LVar1
, 1)
\
Wait
(5) \
EndIf
LVar7
#define LVar7
Definition
macros.h:151
◆
HNP_KILL_CHILD
[1/2]
#
define
HNP_KILL_CHILD
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Call
(
SetDamageSource
,
DMG_SRC_DEFAULT
)
\
Call
(
DispatchEvent
,
ArrayVar
(
idx
),
EVENT_DEATH
) \
EndIf
DMG_SRC_DEFAULT
@ DMG_SRC_DEFAULT
Definition
enums.h:2017
EVENT_DEATH
@ EVENT_DEATH
Definition
enums.h:2182
◆
HNP_KILL_CHILD
[2/2]
#
define
HNP_KILL_CHILD
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Call
(
DispatchEvent
,
ArrayVar
(
idx
),
EVENT_DEATH
) \
EndIf
◆
HNP_LOAD_SUCTION_PATH
#
define
HNP_LOAD_SUCTION_PATH
(
idx
)
Value:
CaseEq
(
idx
)
\
Call
(
LoadPath
, 40,
Ref
(N(
SuctionPaths
)[
idx
]), 3,
EASING_QUADRATIC_IN
)
LoadPath
ApiStatus LoadPath(Evt *script, b32 isInitialCall)
Ref
#define Ref(sym)
Address/pointer constant.
Definition
macros.h:56
CaseEq
#define CaseEq(RVAR)
Marks the start of a switch case that executes only if LVAR == RVAR. It also marks the end of any pre...
Definition
macros.h:331
◆
HNP_REGISTER_CHILD
#
define
HNP_REGISTER_CHILD
(
idx
)
Value:
CaseEq
(1 <<
idx
)
\
BitwiseOrConst
(
LVar1
, 1 <<
idx
)
\
Set
(
LVar2
,
idx
)
\
Set
(
ArrayVar
(
idx
),
LVar0
)
◆
HNP_RETURN_HOME
[1/4]
#
define
HNP_RETURN_HOME
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Thread \
Mod
(
LVarA
, 2)
\
IfEq
(
LVarA
, 0)
\
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_A
)
\
Else \
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_B
)
\
EndIf \
Call
(
SetGoalToHome
,
ArrayVar
(
idx
))
\
Call
(
FlyToGoal
,
ArrayVar
(
idx
), 20, -10,
EASING_SIN_OUT
)
\
EndThread \
Add
(
LVarA
, 1)
\
Wait
(8) \
EndIf
EASING_SIN_OUT
@ EASING_SIN_OUT
Definition
enums.h:521
◆
HNP_RETURN_HOME
[2/4]
#
define
HNP_RETURN_HOME
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Thread \
Mod
(
LVarA
, 2)
\
IfEq
(
LVarA
, 0)
\
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_A
)
\
Else \
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_B
)
\
EndIf \
Call
(
SetGoalToHome
,
ArrayVar
(
idx
))
\
Call
(
FlyToGoal
,
ArrayVar
(
idx
), 20, -10,
EASING_SIN_OUT
)
\
EndThread \
Add
(
LVarA
, 1)
\
Wait
(8) \
EndIf
◆
HNP_RETURN_HOME
[3/4]
#
define
HNP_RETURN_HOME
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar1
)
\
IfEq
(
LVar1
, 0)
\
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim06
)
\
Else \
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim07
)
\
EndIf \
Thread \
Call
(
SetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_WobbleMode
, 0)
\
Mod
(
LVarA
, 2)
\
IfEq
(
LVarA
, 0)
\
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_A
)
\
Else \
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_B
)
\
EndIf \
Call
(
SetGoalToHome
,
ArrayVar
(
idx
))
\
Call
(
FlyToGoal
,
ArrayVar
(
idx
), 30, 10,
EASING_SIN_OUT
)
\
Call
(
SetPartAlpha
,
ArrayVar
(
idx
), 1, 255)
\
Call
(
SetActorYaw
,
ArrayVar
(
idx
), 0)
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar1
)
\
IfEq
(
LVar1
, 0)
\
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim02
)
\
Else \
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim03
)
\
EndIf \
EndThread \
Add
(
LVarA
, 1)
\
Wait
(4) \
EndIf
◆
HNP_RETURN_HOME
[4/4]
#
define
HNP_RETURN_HOME
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar1
)
\
IfEq
(
LVar1
, 0)
\
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim06
)
\
Else \
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim07
)
\
EndIf \
Thread \
Call
(
SetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_WobbleMode
, 0)
\
Mod
(
LVarA
, 2)
\
IfEq
(
LVarA
, 0)
\
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_A
)
\
Else \
Call
(
PlaySoundAtActor
,
ArrayVar
(
idx
),
SOUND_RUFF_PUFF_FLY_B
)
\
EndIf \
Call
(
SetGoalToHome
,
ArrayVar
(
idx
))
\
Call
(
FlyToGoal
,
ArrayVar
(
idx
), 30, 10,
EASING_SIN_OUT
)
\
Call
(
SetPartAlpha
,
ArrayVar
(
idx
), 1, 255)
\
Call
(
SetActorYaw
,
ArrayVar
(
idx
), 0)
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar1
)
\
IfEq
(
LVar1
, 0)
\
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim02
)
\
Else \
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim03
)
\
EndIf \
EndThread \
Add
(
LVarA
, 1)
\
Wait
(4) \
EndIf
◆
HNP_SCATTER_PUFF
[1/2]
#
define
HNP_SCATTER_PUFF
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
KillThread
(
ArrayVar
(
idx
+
MAX_RUFF_PUFFS
))
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar1
)
\
IfEq
(
LVar1
, 0)
\
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim12
)
\
Else \
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim13
)
\
EndIf \
Thread \
Call
(
GetActorPos
,
ACTOR_PLAYER
,
LVar0
,
LVar1
,
LVar2
)
\
Call
(
GetActorPos
,
ArrayVar
(
idx
),
LVar3
,
LVar4
,
LVar5
)
\
Call
(N(
Atan2
),
LVar6
,
LVar0
,
LVar2
,
LVar3
,
LVar5
)
\
DivF
(
LVar6
,
Float
(2.0))
\
AddF
(
LVar6
,
Float
(90.0))
\
Call
(
AddVectorPolar
,
LVar0
,
LVar1
,
Float
(70.0),
LVar6
)
\
Call
(
SetActorJumpGravity
,
ArrayVar
(
idx
),
Float
(1.0))
\
Call
(
SetGoalPos
,
ArrayVar
(
idx
),
LVar0
,
LVar1
,
LVar2
)
\
Call
(
JumpToGoal
,
ArrayVar
(
idx
), 20,
FALSE
,
FALSE
,
FALSE
) \
EndThread \
EndIf
MAX_RUFF_PUFFS
#define MAX_RUFF_PUFFS
Definition
huff_n_puff.c:11
ACTOR_PLAYER
@ ACTOR_PLAYER
Definition
enums.h:2114
LVar6
#define LVar6
Definition
macros.h:150
LVar5
#define LVar5
Definition
macros.h:149
◆
HNP_SCATTER_PUFF
[2/2]
#
define
HNP_SCATTER_PUFF
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
KillThread
(
ArrayVar
(
idx
+
MAX_RUFF_PUFFS
))
\
Call
(
GetActorVar
,
ArrayVar
(
idx
),
AVAR_TuffPuff_IsLarge
,
LVar1
)
\
IfEq
(
LVar1
, 0)
\
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim12
)
\
Else \
Call
(
SetAnimation
,
ArrayVar
(
idx
), 1,
ANIM_TuffPuff_Anim13
)
\
EndIf \
Thread \
Call
(
GetActorPos
,
ACTOR_PLAYER
,
LVar0
,
LVar1
,
LVar2
)
\
Call
(
GetActorPos
,
ArrayVar
(
idx
),
LVar3
,
LVar4
,
LVar5
)
\
Call
(N(
Atan2
),
LVar6
,
LVar0
,
LVar2
,
LVar3
,
LVar5
)
\
DivF
(
LVar6
,
Float
(2.0))
\
AddF
(
LVar6
,
Float
(90.0))
\
Call
(
AddVectorPolar
,
LVar0
,
LVar1
,
Float
(70.0),
LVar6
)
\
Call
(
SetActorJumpGravity
,
ArrayVar
(
idx
),
Float
(1.0))
\
Call
(
SetGoalPos
,
ArrayVar
(
idx
),
LVar0
,
LVar1
,
LVar2
)
\
Call
(
JumpToGoal
,
ArrayVar
(
idx
), 20,
FALSE
,
FALSE
,
FALSE
) \
EndThread \
EndIf
◆
HNP_SQUEEZE_PLAYER
#
define
HNP_SQUEEZE_PLAYER
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Set
(
LVar1
,
ArrayVar
(
idx
))
\
Set
(
LVar2
,
LVarA
)
\
ExecGetTID
(N(
EVS_TuffPuff_SqueezePlayer
),
ArrayVar
(
idx
+
MAX_RUFF_PUFFS
))
\
Add
(
LVar3
, 1) \
EndIf
◆
HNP_SWARM_MOVE_UP
#
define
HNP_SWARM_MOVE_UP
(
idx
)
Value:
IfFlag
(
LVar0
, 1 <<
idx
)
\
Thread \
Call
(
GetActorPos
,
ArrayVar
(
idx
),
LVar1
,
LVar2
,
LVar3
)
\
Add
(
LVar2
, 15)
\
Call
(
SetGoalPos
,
ArrayVar
(
idx
),
LVar1
,
LVar2
,
LVar3
)
\
Call
(
FlyToGoal
,
ArrayVar
(
idx
), 20, 0,
EASING_LINEAR
)
\
Wait
(3) \
EndThread \
EndIf
EASING_LINEAR
@ EASING_LINEAR
Definition
enums.h:510
◆
HNP_SWARM_SURROUND_PLAYER
#
define
HNP_SWARM_SURROUND_PLAYER
(
idx
)
◆
MAX_RUFF_PUFFS
#
define
MAX_RUFF_PUFFS 10
◆
NAMESPACE
#
define
NAMESPACE
A
(
huff_n_puff
)
Function Documentation
◆
A()
[1/2]
ActorBlueprint
A
(
huff_n_puff
)
◆
A()
[2/2]
ActorBlueprint
A
(
tuff_puff
)
extern
src
battle
area
flo2
actor
huff_n_puff.c
Generated by
1.10.0