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

What FIGHTSTG asks WFIGHTMN about techniques: the final battles' records, the gauge, the start of a technique and its idle motions, and the damage limits of the special battles. More...

Include dependency graph for techs.c:

Go to the source code of this file.

Functions

void WFIGHTMN_recordTech (u8 side, s32 id)
 In BATTLE_KIND_FINAL, keeps the partner's technique ID in FIGHTSTG_battle.state.tech when its script is not 5 or 12 and it has an effect (not 0-1, 9-10 or 12) or an element; WFIGHTMN_bringLastEnemy makes technique 440 from it.
 
void WFIGHTMN_chargeGauge (u8 side, s32 damage)
 Adds what damage gives to the current partner's gauge (BATTLE_SETUP.gauges), up to 1000.
 
static void choosePartnerScript (BattleScript *task, TechData *info, BattleStats *own, BattleStats *other)
 Picks the script of the partner's technique: 8 with the triple hit, 6 with an action effect or a weapon of the enemy's family, else its own one.
 
static void setTechIdleMotions (TechData *info, u8 actor, s32 id, s32 damage)
 Sets the fighters' idle motions for the damage a technique does; an attack also counts for the final battles, anything else ends the enemy's weakness.
 
static s32 getHealDamage (u8 actor, s32 id)
 Returns what a technique that does not attack heals, as negative damage.
 
static void chooseEnemyScript (BattleScript *task, TechData *info, BattleStats *other)
 Gives the enemy's technique its own script, and its stage effect when it has an element or the target's family.
 
BattleScript * WFIGHTMN_startTech (u8 actor, s32 id)
 Starts the effect of actor's move id (FIGHTSTG's FIGHTSTG_createBattleScript): its kind and motions from TECHS (choosePartnerScript, chooseEnemyScript), which hits land from FIGHTSTG_action, then sets the fighters' idle motions for the damage it does (setTechIdleMotions)
 
s32 WFIGHTMN_setIdleMotion (u8 id, s32 damage)
 Sets the idle motion of side id >> 4's fighter: 1 (weak) if damage leaves it with a quarter of its HP or less; returns whether it did.
 
void WFIGHTMN_countHit (u8 side, s32 damage)
 In BATTLE_KIND_FINAL_LAST, the partner's third hit that does damage weakens the enemy (FIGHTSTG's FIGHTSTG_weakenEnemy)
 
void WFIGHTMN_endWeakness (u8 side)
 In BATTLE_KIND_FINAL_LAST, anything the partner does but an attack ends the enemy's weakness (FIGHTSTG's FIGHTSTG_endEnemyWeakness)
 
s32 WFIGHTMN_limitDamage (u8 side, s32 damage, s32 hits)
 In BATTLE_KIND_ESCAPE and BATTLE_KIND_UNK2, cuts the damage that the partner's hits do so that the enemy keeps at least an eleventh of its HP; in BATTLE_KIND_NO_DAMAGE the partner does none.
 

Detailed Description

What FIGHTSTG asks WFIGHTMN about techniques: the final battles' records, the gauge, the start of a technique and its idle motions, and the damage limits of the special battles.

Definition in file techs.c.

Function Documentation

◆ WFIGHTMN_recordTech()

void WFIGHTMN_recordTech ( u8  side,
s32  id 
)

In BATTLE_KIND_FINAL, keeps the partner's technique ID in FIGHTSTG_battle.state.tech when its script is not 5 or 12 and it has an effect (not 0-1, 9-10 or 12) or an element; WFIGHTMN_bringLastEnemy makes technique 440 from it.

< battle 0x144, the last one: its first enemy

Definition at line 11 of file techs.c.

Referenced by setTechIdleMotions().

Here is the caller graph for this function:

◆ WFIGHTMN_chargeGauge()

void WFIGHTMN_chargeGauge ( u8  side,
s32  damage 
)

Adds what damage gives to the current partner's gauge (BATTLE_SETUP.gauges), up to 1000.

Definition at line 35 of file techs.c.

Referenced by FIGHTSTG_updateCounterattack(), FIGHTSTG_updateEnemyAttack(), FIGHTSTG_updateFirstTech(), FIGHTSTG_updateTechAction(), and showOtherAttackResult().

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

◆ choosePartnerScript()

static void choosePartnerScript ( BattleScript *  task,
TechData *  info,
BattleStats *  own,
BattleStats *  other 
)
inlinestatic

Picks the script of the partner's technique: 8 with the triple hit, 6 with an action effect or a weapon of the enemy's family, else its own one.

< under it, the technique has none

< FIGHTSTG_rollHit and FIGHTSTG_computeDamage

Definition at line 50 of file techs.c.

Referenced by WFIGHTMN_startTech().

Here is the caller graph for this function:

◆ setTechIdleMotions()

static void setTechIdleMotions ( TechData *  info,
u8  actor,
s32  id,
s32  damage 
)
inlinestatic

Sets the fighters' idle motions for the damage a technique does; an attack also counts for the final battles, anything else ends the enemy's weakness.

< FIGHTSTG_rollHit and FIGHTSTG_computeDamage

< FIGHTSTG_rollMagicHit and FIGHTSTG_computeMagicDamage

< HP, in 128ths of the damage

Definition at line 101 of file techs.c.

Referenced by WFIGHTMN_startTech().

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

◆ getHealDamage()

static s32 getHealDamage ( u8  actor,
s32  id 
)
inlinestatic

Returns what a technique that does not attack heals, as negative damage.

Definition at line 116 of file techs.c.

Referenced by WFIGHTMN_startTech().

Here is the caller graph for this function:

◆ chooseEnemyScript()

static void chooseEnemyScript ( BattleScript *  task,
TechData *  info,
BattleStats *  other 
)
inlinestatic

Gives the enemy's technique its own script, and its stage effect when it has an element or the target's family.

Definition at line 135 of file techs.c.

Referenced by WFIGHTMN_startTech().

Here is the caller graph for this function:

◆ WFIGHTMN_startTech()

BattleScript * WFIGHTMN_startTech ( u8  actor,
s32  id 
)

Starts the effect of actor's move id (FIGHTSTG's FIGHTSTG_createBattleScript): its kind and motions from TECHS (choosePartnerScript, chooseEnemyScript), which hits land from FIGHTSTG_action, then sets the fighters' idle motions for the damage it does (setTechIdleMotions)

WFIGHTMN's functions FIGHTSTG calls.

< two magic hits, as techniques 0x1B9 and 0x1BA

< in BATTLE_KIND_UNK2: takes 70 percent of the partner's HP, ends as BATTLE_FLED

< in BATTLE_KIND_UNK2: takes 70 percent of the partner's HP, ends as BATTLE_FLED

< FIGHTSTG_rollHit and FIGHTSTG_computeDamage

< FIGHTSTG_rollMagicHit and FIGHTSTG_computeMagicDamage

Definition at line 150 of file techs.c.

Referenced by FIGHTSTG_updateEnemyAttack(), FIGHTSTG_updateFirstTech(), FIGHTSTG_updateOneHpTurn(), startTechScript(), and WFIGHTMN_recover().

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

◆ WFIGHTMN_setIdleMotion()

s32 WFIGHTMN_setIdleMotion ( u8  id,
s32  damage 
)

Sets the idle motion of side id >> 4's fighter: 1 (weak) if damage leaves it with a quarter of its HP or less; returns whether it did.

< WFIGHTMN's battle menu

< its third enemy; winning plays the ending

Definition at line 280 of file techs.c.

Referenced by FIGHTSTG_updateEnemyAttack(), FIGHTSTG_updateEnemyTurn(), playCounterTech(), setItemScript(), setTechIdleMotions(), setUpDrain(), setUpItemTech(), WFIGHTMN_countHit(), WFIGHTMN_digidevolve(), WFIGHTMN_endBlast(), WFIGHTMN_knockOut(), WFIGHTMN_recover(), WFIGHTMN_tag(), and WFIGHTMN_takeDamage().

Here is the caller graph for this function:

◆ WFIGHTMN_countHit()

void WFIGHTMN_countHit ( u8  side,
s32  damage 
)

In BATTLE_KIND_FINAL_LAST, the partner's third hit that does damage weakens the enemy (FIGHTSTG's FIGHTSTG_weakenEnemy)

< its third enemy; winning plays the ending

Definition at line 301 of file techs.c.

Referenced by FIGHTSTG_runItemScript(), playCounterTech(), and setTechIdleMotions().

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

◆ WFIGHTMN_endWeakness()

void WFIGHTMN_endWeakness ( u8  side)

In BATTLE_KIND_FINAL_LAST, anything the partner does but an attack ends the enemy's weakness (FIGHTSTG's FIGHTSTG_endEnemyWeakness)

< its third enemy; winning plays the ending

Definition at line 312 of file techs.c.

Referenced by FIGHTSTG_runItemScript(), setTechIdleMotions(), startTechScript(), and WFIGHTMN_runCommand().

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

◆ WFIGHTMN_limitDamage()

s32 WFIGHTMN_limitDamage ( u8  side,
s32  damage,
s32  hits 
)

In BATTLE_KIND_ESCAPE and BATTLE_KIND_UNK2, cuts the damage that the partner's hits do so that the enemy keeps at least an eleventh of its HP; in BATTLE_KIND_NO_DAMAGE the partner does none.

< the enemy runs away under a tenth of its HP

< the enemy keeps an eleventh of its HP

< the partner's hits do no damage

Definition at line 321 of file techs.c.

Referenced by FIGHTSTG_startAction(), FIGHTSTG_updateCounterattack(), and setUpItemTech().

Here is the caller graph for this function: