Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
digimon_change.c File Reference

FIGHTSTG's Digimon change: the effect of a digivolution, or of a blast's. More...

Include dependency graph for digimon_change.c:

Go to the source code of this file.

Functions

static void setChangeClips (DigimonChange *task)
 Applies the wipe: clips BATTLE_LAYER_MODELS to clip0 and BATTLE_LAYER_WIREFRAME to clip1.
 
static void addNewDigimon (DigimonChange *task, Models *models, FightStage *stage)
 Once the change's stage is set, plays the change sound and adds the new Digimon as model 1, then lets it show for 180 frames.
 
static void startChange (DigimonChange *task, DigimonChangeChildren *children, Models *models, BattleCamera *camera)
 Starts the change: the clips at the old Digimon whole, the camera on the partner, its wireframe layer and change motion, and the first effects.
 
static void wipeToWireframe (DigimonChange *task, DigimonChangeChildren *children, Models *models)
 Wipes the old Digimon away into its wireframe; once it's all wireframe, hides its model layer and starts the second effect.
 
static void swapInNewDigimon (DigimonChange *task, Models *models, BattleCamera *camera)
 Puts the new Digimon in the partner's place (model 1 becomes model 0) with both layers on, the camera on it and the clips at the wireframe whole.
 
static void wipeFromWireframe (DigimonChange *task, DigimonChangeChildren *children, Models *models)
 Wipes the new Digimon in over its wireframe; once it's whole, hides the wireframe layer and starts the third effect.
 
static void returnToBattle (DigimonChange *task, Models *models, BattleCamera *camera)
 Goes back to the battle: shows model 0x10 again, gives the new Digimon its idle motion, turns the camera to the enemy and plays the battle music, then ends the change.
 
void FIGHTSTG_updateDigimonChange (DigimonChange *task, DigimonChangeChildren *children)
 A partner Digimon's change: a stage of its own (addNewDigimon), the new Digimon's model in front of a sprite effect, the old one wiped away by the clips of BATTLE_LAYER_MODELS and BATTLE_LAYER_WIREFRAME (startChange, wipeToWireframe, swapInNewDigimon, wipeFromWireframe), and a fade back to the battle (returnToBattle).
 
DigimonChange * FIGHTSTG_startDigimonChange (s32 key1, s32 key2)
 Starts a partner's Digimon change (FIGHTSTG_updateDigimonChange)
 

Variables

const SVECTOR FIGHTSTG_changeStartPos = { 0, 0, 0x7FFF, 0 }
 where FIGHTSTG_updateDigimonChange's effects are: the first (1000, 1001 or 1007) when the old Digimon starts being wiped away, the second (1002) once it's gone, the third (1003 or 1008), behind (z -1), once the new one is shown whole; all are screen positions
 
const SVECTOR FIGHTSTG_changeMidPos = { 160, 120, 0x7FFF, 0 }
 
const SVECTOR FIGHTSTG_changeEndPos = { -160, -120, -1, 0 }
 

Detailed Description

FIGHTSTG's Digimon change: the effect of a digivolution, or of a blast's.

Definition in file digimon_change.c.

Function Documentation

◆ setChangeClips()

static void setChangeClips ( DigimonChange *  task)
inlinestatic

Applies the wipe: clips BATTLE_LAYER_MODELS to clip0 and BATTLE_LAYER_WIREFRAME to clip1.

< the models' wireframe copies, in a Digimon change

Definition at line 15 of file digimon_change.c.

Referenced by wipeFromWireframe(), and wipeToWireframe().

Here is the caller graph for this function:

◆ addNewDigimon()

static void addNewDigimon ( DigimonChange *  task,
Models *  models,
FightStage *  stage 
)
inlinestatic

Once the change's stage is set, plays the change sound and adds the new Digimon as model 1, then lets it show for 180 frames.

Definition at line 27 of file digimon_change.c.

Referenced by FIGHTSTG_updateDigimonChange().

Here is the caller graph for this function:

◆ startChange()

static void startChange ( DigimonChange *  task,
DigimonChangeChildren *  children,
Models *  models,
BattleCamera *  camera 
)
inlinestatic

Starts the change: the clips at the old Digimon whole, the camera on the partner, its wireframe layer and change motion, and the first effects.

< the models' wireframe copies, in a Digimon change

Definition at line 49 of file digimon_change.c.

Referenced by FIGHTSTG_updateDigimonChange().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wipeToWireframe()

static void wipeToWireframe ( DigimonChange *  task,
DigimonChangeChildren *  children,
Models *  models 
)
inlinestatic

Wipes the old Digimon away into its wireframe; once it's all wireframe, hides its model layer and starts the second effect.

Definition at line 92 of file digimon_change.c.

Referenced by FIGHTSTG_updateDigimonChange().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ swapInNewDigimon()

static void swapInNewDigimon ( DigimonChange *  task,
Models *  models,
BattleCamera *  camera 
)
inlinestatic

Puts the new Digimon in the partner's place (model 1 becomes model 0) with both layers on, the camera on it and the clips at the wireframe whole.

< the models' wireframe copies, in a Digimon change

Definition at line 112 of file digimon_change.c.

Referenced by FIGHTSTG_updateDigimonChange().

Here is the caller graph for this function:

◆ wipeFromWireframe()

static void wipeFromWireframe ( DigimonChange *  task,
DigimonChangeChildren *  children,
Models *  models 
)
inlinestatic

Wipes the new Digimon in over its wireframe; once it's whole, hides the wireframe layer and starts the third effect.

Definition at line 148 of file digimon_change.c.

Referenced by FIGHTSTG_updateDigimonChange().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ returnToBattle()

static void returnToBattle ( DigimonChange *  task,
Models *  models,
BattleCamera *  camera 
)
inlinestatic

Goes back to the battle: shows model 0x10 again, gives the new Digimon its idle motion, turns the camera to the enemy and plays the battle music, then ends the change.

Definition at line 169 of file digimon_change.c.

Referenced by FIGHTSTG_updateDigimonChange().

Here is the caller graph for this function:

◆ FIGHTSTG_updateDigimonChange()

void FIGHTSTG_updateDigimonChange ( DigimonChange *  task,
DigimonChangeChildren *  children 
)

A partner Digimon's change: a stage of its own (addNewDigimon), the new Digimon's model in front of a sprite effect, the old one wiped away by the clips of BATTLE_LAYER_MODELS and BATTLE_LAYER_WIREFRAME (startChange, wipeToWireframe, swapInNewDigimon, wipeFromWireframe), and a fade back to the battle (returnToBattle).

The match depends on substate 2's control kept in startChange, on the if/else of the motion, on clip1.h written before clip1.y in wipeToWireframe and on the layers kept in setChangeClips

< the fighters'

Definition at line 196 of file digimon_change.c.

Referenced by FIGHTSTG_startDigimonChange().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FIGHTSTG_startDigimonChange()

DigimonChange * FIGHTSTG_startDigimonChange ( s32  key1,
s32  key2 
)

Starts a partner's Digimon change (FIGHTSTG_updateDigimonChange)

Definition at line 343 of file digimon_change.c.

Referenced by runPlayPage(), WFIGHTMN_blast(), and WFIGHTMN_digivolve().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ FIGHTSTG_changeStartPos

const SVECTOR FIGHTSTG_changeStartPos = { 0, 0, 0x7FFF, 0 }

where FIGHTSTG_updateDigimonChange's effects are: the first (1000, 1001 or 1007) when the old Digimon starts being wiped away, the second (1002) once it's gone, the third (1003 or 1008), behind (z -1), once the new one is shown whole; all are screen positions

Definition at line 9 of file digimon_change.c.

Referenced by startChange().

◆ FIGHTSTG_changeMidPos

const SVECTOR FIGHTSTG_changeMidPos = { 160, 120, 0x7FFF, 0 }

Definition at line 10 of file digimon_change.c.

Referenced by wipeToWireframe().

◆ FIGHTSTG_changeEndPos

const SVECTOR FIGHTSTG_changeEndPos = { -160, -120, -1, 0 }

Definition at line 11 of file digimon_change.c.

Referenced by wipeFromWireframe().