mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-27 12:47:39 -05:00
more decomp
This commit is contained in:
1025
asm/overlay_30.s
1025
asm/overlay_30.s
File diff suppressed because it is too large
Load Diff
@@ -270,8 +270,7 @@ struct monster {
|
||||
s16 iq; // 0xE
|
||||
s16 hp; // 0x10: Current HP
|
||||
s16 max_hp_stat; // 0x12: Add to max_hp_boost for the actual max HP
|
||||
u8 field_0x14;
|
||||
u8 field_0x15;
|
||||
s16 field_0x14;
|
||||
s16 max_hp_boost; // 0x16: From Life Seeds, Sitrus Berries, etc.
|
||||
u8 field_0x18;
|
||||
u8 field_0x19;
|
||||
@@ -292,7 +291,7 @@ struct monster {
|
||||
struct item held_item; // 0x62
|
||||
// 0x68: Previous held item. Used for whenever taking the X-Ray Specs or Y-Ray Specs on or off
|
||||
// in order to update the camera and minimap. Changed to held_item.id after checking.
|
||||
enum item_id previous_held_item_id;
|
||||
s16 previous_held_item_id;
|
||||
// Previous position data is used by the AI
|
||||
struct position prev_pos[NUM_PREV_POS]; // 0x6A: Position X turns ago
|
||||
struct ai_target ai_target; // 0x7A
|
||||
@@ -309,8 +308,7 @@ struct monster {
|
||||
// and restored to entity::types after statuses::roost ends.
|
||||
enum type_id original_types[2];
|
||||
// 0xAC: The move id to be used if statuses::bide is 1.
|
||||
u8 bide_move_id;
|
||||
u8 field_0xad;
|
||||
s16 bide_move_id;
|
||||
u8 field_0xae;
|
||||
u8 field_0xaf;
|
||||
// 0xB0: Unique number given to the monster when spawning to differentiate it from other
|
||||
@@ -468,18 +466,13 @@ struct monster {
|
||||
// 0x167: Set to true when the monster receives a critical hit. If true when the monster
|
||||
// attacks, Anger Point will activate. Set to false after the monster attacks.
|
||||
bool8 anger_point_flag;
|
||||
u8 field_0x168;
|
||||
u8 field_0x169;
|
||||
s16 field_0x168;
|
||||
// 0x16A: When not DIR_NONE, monster will turn in the specified direction and
|
||||
// its AI will be forced to target the tile next to it in that direction.
|
||||
// Used to prevent bosses from turning towards team members the moment the boss fight
|
||||
// starts (which would override their intended starting facing direction).
|
||||
enum direction_id force_turn : 8;
|
||||
u8 field_0x16b;
|
||||
u8 field_0x16c;
|
||||
u8 field_0x16d;
|
||||
u8 field_0x16e;
|
||||
u8 field_0x16f;
|
||||
u8 force_turn;
|
||||
u8 unk16B[5];
|
||||
// 0x170: Set to make the monster disappear when using the move U-turn.
|
||||
bool8 uturn_hide_monster_flag;
|
||||
// 0x171: Some kind of visual flag? Gets set to 0 temporarily when changing Shaymin form
|
||||
@@ -495,9 +488,9 @@ struct monster {
|
||||
u8 field_0x175;
|
||||
u8 field_0x176;
|
||||
// 0x177: Appears to be the direction for using sleep talk? Set to DIR_NONE when awake.
|
||||
enum direction_id sleep_talk_direction : 8;
|
||||
u8 sleep_talk_direction;
|
||||
// 0x178: Appears to be the direction for using snore? Set to DIR_NONE when awake.
|
||||
enum direction_id snore_direction : 8;
|
||||
u8 snore_direction;
|
||||
// 0x179: Seems to be set to 4 when the monster initally throws something and probably
|
||||
// related to direction somehow. Checked in a loop for every monster.
|
||||
u8 field_0x179;
|
||||
@@ -511,10 +504,7 @@ struct monster {
|
||||
struct position pixel_pos; // 0x182: The monster's graphical position on screen?
|
||||
u8 field_0x186;
|
||||
u8 field_0x187;
|
||||
u8 field_0x188;
|
||||
u8 field_0x189;
|
||||
u8 field_0x18a;
|
||||
u8 field_0x18b;
|
||||
u32 field_0x188;
|
||||
// 0x18C: Bitflags that cause non-damaging exclusive items to trigger on the
|
||||
// attacker after they have completed their move. For example, the Eclipse Robe
|
||||
// (Darkrai exclusive item) may afflict attacking enemies with the nightmare
|
||||
@@ -648,8 +638,7 @@ struct monster {
|
||||
u8 field_0x20d;
|
||||
u8 field_0x20e;
|
||||
u8 field_0x20f;
|
||||
u8 hp_fractional; // 0x210: 200 * fractional_part(HP)
|
||||
u8 field_0x211;
|
||||
s16 hp_fractional; // 0x210: 200 * fractional_part(HP)
|
||||
// 0x212: When a Pokémon can pass through walls in a hallway, this counts up to 200 before the Pokémon turns in a random direction.
|
||||
s16 mobile_turn_timer;
|
||||
// 0x214: Somehow related to gaining exp through a joy ribbon. Set to 0 after
|
||||
@@ -1142,9 +1131,9 @@ struct trap {
|
||||
u8 team;
|
||||
|
||||
// 0x2: flags: 1-byte bitfield
|
||||
//u8 flags;
|
||||
bool8 f_unbreakable : 1; // If true, the trap can't be broken (for example, using a Trapbust Orb)
|
||||
u8 flags_unk1 : 7;
|
||||
u8 flags;
|
||||
//bool8 f_unbreakable : 1; // If true, the trap can't be broken (for example, using a Trapbust Orb)
|
||||
//u8 flags_unk1 : 7;
|
||||
|
||||
u8 field_0x3;
|
||||
};
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef PMD_SKY_OVERLAY_30_H
|
||||
#define PMD_SKY_OVERLAY_30_H
|
||||
|
||||
#include "dungeon_mode.h"
|
||||
|
||||
void ov30_02382820(s32 arg0, s32 arg1, s32 isGameModeRescue);
|
||||
s32 ov30_02382874(void);
|
||||
u8 ov30_0238298C(void);
|
||||
@@ -10,6 +12,10 @@ s32 ov30_02382A34(void);
|
||||
void ov30_02382C30(void);
|
||||
void WriteQuicksaveData(void *buffer, s32 size);
|
||||
void ov30_02382D80(void *buffer);
|
||||
void ov30_02382E94(void *buffer);
|
||||
void ov30_02382FB8(void *buffer);
|
||||
void ov30_02383084(void *buffer);
|
||||
void ov30_023831E8(void *arg0, struct entity* arg1);
|
||||
|
||||
|
||||
#endif // PMD_SKY_OVERLAY_30_H
|
||||
|
||||
@@ -139,6 +139,9 @@ asm void ov30_023829CC(s32 arg0, s32 arg1, s8 arg2)
|
||||
ldmia sp!, {r4, r5, r6, pc}
|
||||
}
|
||||
|
||||
extern u8 OVERLAY30_JP_STRING_1[0xC]; // みさき様
|
||||
extern u8 OVERLAY30_JP_STRING_2[0xC]; // やよい様
|
||||
|
||||
s32 NoteSaveBase(s32);
|
||||
s32 WriteQuickSaveInfo(s32, s32);
|
||||
void sub_02003B94();
|
||||
@@ -146,7 +149,31 @@ void sub_02003BC8();
|
||||
void sub_02029F88(s32, s32, s32);
|
||||
void sub_02029FBC();
|
||||
s32 sub_02048DC4(s32);
|
||||
void sub_02034D0C();
|
||||
void sub_02034D0C(void);
|
||||
void ov30_02382D80(void*);
|
||||
void ov30_02382E94(void*);
|
||||
void ov30_02382FB8(void*);
|
||||
void ov30_02383084(void*);
|
||||
void ov30_02383C70(void*);
|
||||
void ov30_0238409C(void*);
|
||||
void ov30_02384208(void*);
|
||||
void ov30_02385C3C(void*, void*, s32);
|
||||
void ov30_02385C54(void*, void*, s32);
|
||||
void ov30_02385CDC(void*);
|
||||
void ov30_02385CE0(void*, void*);
|
||||
void ov30_02385D14(void*, u16);
|
||||
void ov30_02385D34(void*, s16);
|
||||
struct trap* GetTrapInfo(struct entity*);
|
||||
void ov30_023831E8(void *, struct entity*);
|
||||
void ov30_02385D74(void *, s32);
|
||||
void ov30_02385DD4(void *, u8);
|
||||
void ov30_02385D54(void*, u8); /* extern */
|
||||
void memset(void*, s32, s32); /* extern */
|
||||
void ov30_02384268(void*, void*); /* extern */
|
||||
void ov30_02385D94(void*, s32); /* extern */
|
||||
void ov30_02385DB4(void*, s32); /* extern */
|
||||
void ov30_02385DF8(void*, void*); /* extern */
|
||||
void ov30_02385EB8(void*, void*, s32); /* extern */
|
||||
|
||||
s32 ov30_02382A34(void)
|
||||
{
|
||||
@@ -241,23 +268,6 @@ void ov30_02382C30(void)
|
||||
}
|
||||
}
|
||||
|
||||
extern u8 OVERLAY30_JP_STRING_1[0xC]; // みさき様
|
||||
extern u8 OVERLAY30_JP_STRING_2[0xC]; // やよい様
|
||||
|
||||
void ov30_02382D80(void*);
|
||||
void ov30_02382E94(void*);
|
||||
void ov30_02382FB8(void*);
|
||||
void ov30_02383084(void*);
|
||||
void ov30_02383C70(void*);
|
||||
void ov30_0238409C(void*);
|
||||
void ov30_02384208(void*);
|
||||
void ov30_02385C3C(void*, void*, s32);
|
||||
void ov30_02385C54(void*, void*, s32);
|
||||
void ov30_02385CDC(void*);
|
||||
void ov30_02385CE0(void*, void*);
|
||||
void ov30_02385D14(void*, u16);
|
||||
void ov30_02385D34(void*, s16);
|
||||
|
||||
void WriteQuicksaveData(void *buffer, s32 size)
|
||||
{
|
||||
u8 sp4[0xC];
|
||||
@@ -318,3 +328,348 @@ void ov30_02382D80(void *buffer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ov30_02382E94(void *buffer)
|
||||
{
|
||||
u8 zeroes[7];
|
||||
bool32 var_r1;
|
||||
struct trap* trap;
|
||||
struct entity* entity;
|
||||
|
||||
for(int index1 = 0; index1 < 7; index1++)
|
||||
{
|
||||
zeroes[index1] = -1;
|
||||
}
|
||||
ov30_02385CE0(buffer, OVERLAY30_JP_STRING_1);
|
||||
for(int index2 = 0; index2 < 0x40; index2++)
|
||||
{
|
||||
entity = DUNGEON_PTR->trap_ptrs[index2];
|
||||
var_r1 = FALSE;
|
||||
if ((entity != NULL) && (entity->type == ENTITY_TRAP)) {
|
||||
trap = GetTrapInfo(entity);
|
||||
ov30_02385C54(buffer, &trap->id, 1);
|
||||
ov30_02385C54(buffer, &trap->team, 1);
|
||||
ov30_02385C54(buffer, &trap->flags, 1);
|
||||
ov30_02385C54(buffer, &trap->field_0x3, 1);
|
||||
ov30_02385C54(buffer, &entity->is_visible, 1);
|
||||
ov30_02385C54(buffer, &entity->pos.x, 1);
|
||||
ov30_02385C54(buffer, &entity->pos.y, 1);
|
||||
var_r1 = TRUE;
|
||||
}
|
||||
if (var_r1 == FALSE) {
|
||||
ov30_02385C54(buffer, &zeroes, 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ov30_02382FB8(void *buffer)
|
||||
{
|
||||
u8 sp1;
|
||||
u8 sp0;
|
||||
struct entity* entity;
|
||||
|
||||
entity = &DUNGEON_PTR->entities[148];
|
||||
ov30_02385CE0(buffer, OVERLAY30_JP_STRING_1);
|
||||
if (entity == NULL) {
|
||||
return;
|
||||
}
|
||||
if (entity->type == ENTITY_HIDDEN_STAIRS) {
|
||||
sp1 = 1;
|
||||
ov30_02385C54(buffer, (void*)&sp1, 1);
|
||||
ov30_02385C54(buffer, &entity->is_visible, 1);
|
||||
ov30_02385C54(buffer, &entity->pos.x, 1);
|
||||
ov30_02385C54(buffer, &entity->pos.y, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
sp0 = 0;
|
||||
ov30_02385C54(buffer, (void*)&sp0, 1);
|
||||
ov30_02385C54(buffer, (void*)&sp0, 1);
|
||||
ov30_02385C54(buffer, (void*)&sp0, 1);
|
||||
ov30_02385C54(buffer, (void*)&sp0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void ov30_02383084(void *buffer)
|
||||
{
|
||||
ov30_02385CE0(buffer, OVERLAY30_JP_STRING_1);
|
||||
ov30_02385D74(buffer, DUNGEON_PTR->monster_unique_id_counter);
|
||||
ov30_02385D74(buffer, DUNGEON_PTR->monster_unique_wrap_counter);
|
||||
ov30_02385DD4(buffer, DUNGEON_PTR->plus_is_active[0]);
|
||||
ov30_02385DD4(buffer, DUNGEON_PTR->plus_is_active[1]);
|
||||
ov30_02385DD4(buffer, DUNGEON_PTR->minus_is_active[0]);
|
||||
ov30_02385DD4(buffer, DUNGEON_PTR->minus_is_active[1]);
|
||||
ov30_02385DD4(buffer, DUNGEON_PTR->decoy_is_active);
|
||||
ov30_02385DD4(buffer, DUNGEON_PTR->mew_cannot_spawn);
|
||||
ov30_02385DD4(buffer, DUNGEON_PTR->shaymin_sky_form_loaded);
|
||||
ov30_02385D14(buffer, DUNGEON_PTR->deoxys_floor_id);
|
||||
for(int var_r6 = 0; var_r6 < MAX_TEAM_MEMBERS; var_r6++)
|
||||
{
|
||||
ov30_023831E8(buffer, DUNGEON_PTR->monster_slots.party_members[var_r6]);
|
||||
}
|
||||
for(int var_r6_2 = 0; var_r6_2 < DUNGEON_MAX_WILD_POKEMON; var_r6_2++)
|
||||
{
|
||||
ov30_023831E8(buffer, DUNGEON_PTR->monster_slots.wild_pokemon[var_r6_2]);
|
||||
}
|
||||
}
|
||||
|
||||
void ov30_023831E8(void *arg0, struct entity* arg1)
|
||||
{
|
||||
struct monster sp1C;
|
||||
s32 sp18;
|
||||
s32 sp14;
|
||||
s32 sp10;
|
||||
s16 spC;
|
||||
s16 spA;
|
||||
s16 sp8;
|
||||
u8 sp7;
|
||||
u8 sp6;
|
||||
u8 sp5;
|
||||
u8 sp4;
|
||||
u8 sp3;
|
||||
u8 sp2;
|
||||
u8 sp1;
|
||||
u8 sp0;
|
||||
struct monster* var_r6;
|
||||
s32 var_r5;
|
||||
u8 var_r0;
|
||||
u8 var_r0_2;
|
||||
|
||||
sp18 = 0;
|
||||
sp14 = 1;
|
||||
ov30_02385D54(arg0, 0xAA);
|
||||
ov30_02385D54(arg0, 0x55);
|
||||
if (arg1 == NULL) {
|
||||
var_r0 = 0;
|
||||
} else {
|
||||
if (arg1->type != 0) {
|
||||
var_r0_2 = 1;
|
||||
} else {
|
||||
var_r0_2 = 0;
|
||||
}
|
||||
var_r0 = var_r0_2;
|
||||
}
|
||||
if (var_r0 != 0) {
|
||||
var_r6 = (struct monster *)arg1->info;
|
||||
ov30_02385C54(arg0, &sp14, 1);
|
||||
ov30_02385C54(arg0, &arg1->pos.x, 1);
|
||||
ov30_02385C54(arg0, &arg1->pos.y, 1);
|
||||
ov30_02385C54(arg0, &arg1->is_visible, 1);
|
||||
ov30_02385C54(arg0, &arg1->spawn_genid, 2);
|
||||
} else {
|
||||
memset(&sp1C, 0, sizeof(struct monster));
|
||||
var_r6 = &sp1C;
|
||||
ov30_02385C54(arg0, &sp18, 1);
|
||||
ov30_02385C54(arg0, &sp18, 1);
|
||||
ov30_02385C54(arg0, &sp18, 1);
|
||||
ov30_02385C54(arg0, &sp18, 1);
|
||||
ov30_02385C54(arg0, &sp18, 2);
|
||||
}
|
||||
ov30_02385D14(arg0, var_r6->flags);
|
||||
spC = var_r6->apparent_id;
|
||||
ov30_02385C54(arg0, (s32* ) &spC, 2);
|
||||
spA = var_r6->id;
|
||||
ov30_02385C54(arg0, (s32* ) &spA, 2);
|
||||
ov30_02385DD4(arg0, var_r6->is_not_team_member);
|
||||
ov30_02385DD4(arg0, var_r6->is_team_leader);
|
||||
ov30_02385DD4(arg0, var_r6->is_ally);
|
||||
ov30_02385D54(arg0, var_r6->shopkeeper);
|
||||
ov30_02385D54(arg0, var_r6->level);
|
||||
ov30_02385D54(arg0, (u8) var_r6->team_index);
|
||||
ov30_02385D54(arg0, var_r6->joined_at);
|
||||
ov30_02385D54(arg0, var_r6->joined_at_floor);
|
||||
ov30_02385D34(arg0, var_r6->iq);
|
||||
ov30_02385D34(arg0, var_r6->hp);
|
||||
ov30_02385D34(arg0, var_r6->max_hp_stat);
|
||||
ov30_02385D34(arg0, var_r6->max_hp_boost);
|
||||
ov30_02385D34(arg0, var_r6->field_0x14);
|
||||
ov30_02385D54(arg0, var_r6->offensive_stats[0]);
|
||||
ov30_02385D54(arg0, var_r6->offensive_stats[1]);
|
||||
ov30_02385D54(arg0, var_r6->defensive_stats[0]);
|
||||
ov30_02385D54(arg0, var_r6->defensive_stats[1]);
|
||||
ov30_02385D74(arg0, var_r6->exp);
|
||||
ov30_02385D34(arg0, var_r6->stat_modifiers.offensive_stages[0]);
|
||||
ov30_02385D34(arg0, var_r6->stat_modifiers.offensive_stages[1]);
|
||||
ov30_02385D34(arg0, var_r6->stat_modifiers.defensive_stages[0]);
|
||||
ov30_02385D34(arg0, var_r6->stat_modifiers.defensive_stages[1]);
|
||||
ov30_02385D34(arg0, var_r6->stat_modifiers.hit_chance_stages[0]);
|
||||
ov30_02385D34(arg0, var_r6->stat_modifiers.hit_chance_stages[1]);
|
||||
ov30_02385D34(arg0, var_r6->stat_modifiers.flash_fire_boost);
|
||||
ov30_02385DB4(arg0, var_r6->stat_modifiers.offensive_multipliers[0]);
|
||||
ov30_02385DB4(arg0, var_r6->stat_modifiers.offensive_multipliers[1]);
|
||||
ov30_02385DB4(arg0, var_r6->stat_modifiers.defensive_multipliers[0]);
|
||||
ov30_02385DB4(arg0, var_r6->stat_modifiers.defensive_multipliers[1]);
|
||||
ov30_02385C54(arg0, &var_r6->action.direction, 1);
|
||||
ov30_02385C54(arg0, &var_r6->action.item_target_position.x, 1);
|
||||
ov30_02385C54(arg0, &var_r6->action.item_target_position.y, 1);
|
||||
sp7 = var_r6->types[0];
|
||||
ov30_02385C54(arg0, (s32* ) &sp7, 1);
|
||||
sp6 = var_r6->types[1];
|
||||
ov30_02385C54(arg0, (s32* ) &sp6, 1);
|
||||
sp5 = var_r6->abilities[0];
|
||||
ov30_02385C54(arg0, (s32* ) &sp5, 1);
|
||||
sp4 = var_r6->abilities[1];
|
||||
ov30_02385C54(arg0, (s32* ) &sp4, 1);
|
||||
ov30_02384268(arg0, &var_r6->held_item);
|
||||
sp8 = var_r6->previous_held_item_id;
|
||||
ov30_02385C54(arg0, (s32* ) &sp8, 2);
|
||||
|
||||
for(var_r5 = 0; var_r5 < NUM_PREV_POS; var_r5++)
|
||||
{
|
||||
ov30_02385DF8(arg0, &var_r6->prev_pos[var_r5]);
|
||||
}
|
||||
|
||||
ov30_02385C54(arg0, &var_r6->ai_target.ai_objective, 1);
|
||||
ov30_02385DD4(arg0, var_r6->ai_target.ai_not_next_to_target);
|
||||
ov30_02385DD4(arg0, var_r6->ai_target.ai_targeting_enemy);
|
||||
ov30_02385DD4(arg0, var_r6->ai_target.ai_turning_around);
|
||||
ov30_02385D14(arg0, var_r6->ai_target.ai_target_spawn_genid);
|
||||
ov30_02385DF8(arg0, &var_r6->ai_target.ai_target_pos);
|
||||
|
||||
ov30_02385C54(arg0, &var_r6->iq_skill_menu_flags, 0x45);
|
||||
ov30_02385C54(arg0, &var_r6->iq_skill_flags, 0x45);
|
||||
|
||||
sp3 = var_r6->tactic;
|
||||
ov30_02385C54(arg0, (s32* ) &sp3, 1);
|
||||
ov30_02385D34(arg0, var_r6->hidden_power_base_power);
|
||||
sp2 = var_r6->hidden_power_type;
|
||||
ov30_02385C54(arg0, (s32* ) &sp2, 1);
|
||||
ov30_02385D74(arg0, var_r6->unique_id);
|
||||
ov30_02385D74(arg0, var_r6->wrap_pair_unique_id);
|
||||
ov30_02385D74(arg0, var_r6->bide_damage_tally);
|
||||
ov30_02385C54(arg0, &var_r6->sleep_class_status.sleep, 1);
|
||||
ov30_02385D54(arg0, var_r6->sleep_class_status.sleep_turns);
|
||||
ov30_02385C54(arg0, &var_r6->burn_class_status.burn, 1);
|
||||
ov30_02385D54(arg0, var_r6->burn_class_status.burn_turns);
|
||||
ov30_02385D54(arg0, var_r6->burn_class_status.burn_damage_countdown);
|
||||
ov30_02385D54(arg0, var_r6->burn_class_status.badly_poisoned_damage_count);
|
||||
ov30_02385C54(arg0, &var_r6->frozen_class_status.freeze, 1);
|
||||
ov30_02385D54(arg0, var_r6->frozen_class_status.freeze_turns);
|
||||
ov30_02385D54(arg0, var_r6->frozen_class_status.freeze_damage_countdown);
|
||||
ov30_02385D74(arg0, var_r6->frozen_class_status.constriction_animation);
|
||||
ov30_02385C54(arg0, &var_r6->cringe_class_status.cringe, 1);
|
||||
ov30_02385D54(arg0, var_r6->cringe_class_status.cringe_turns);
|
||||
ov30_02385C54(arg0, &var_r6->bide_class_status.bide, 1);
|
||||
ov30_02385D54(arg0, var_r6->bide_class_status.bide_turns);
|
||||
ov30_02385D54(arg0, var_r6->bide_class_status.bide_move_slot);
|
||||
ov30_02385C54(arg0, &var_r6->reflect_class_status.reflect, 1);
|
||||
ov30_02385D54(arg0, var_r6->reflect_class_status.reflect_turns);
|
||||
ov30_02385D54(arg0, var_r6->reflect_class_status.reflect_damage_countdown);
|
||||
|
||||
ov30_02385C54(arg0, &var_r6->curse_class_status.curse, 1);
|
||||
ov30_02385DD4(arg0, var_r6->curse_class_status.curse_applier_non_team_member_flag);
|
||||
ov30_02385DD4(arg0, var_r6->curse_class_status.dec);
|
||||
ov30_02385D54(arg0, var_r6->curse_class_status.curse_turns);
|
||||
ov30_02385D54(arg0, var_r6->curse_class_status.curse_damage_countdown);
|
||||
|
||||
ov30_02385C54(arg0, &var_r6->leech_seed_class_status.leech_seed, 1);
|
||||
ov30_02385D74(arg0, var_r6->leech_seed_class_status.statuses_applier_id);
|
||||
ov30_02385D54(arg0, var_r6->leech_seed_class_status.leech_seed_source_monster_index);
|
||||
ov30_02385D54(arg0, var_r6->leech_seed_class_status.leech_seed_turns);
|
||||
ov30_02385D54(arg0, var_r6->leech_seed_class_status.leech_seed_damage_countdown);
|
||||
|
||||
ov30_02385C54(arg0, &var_r6->sure_shot_class_status.sure_shot, 1);
|
||||
ov30_02385D54(arg0, var_r6->sure_shot_class_status.sure_shot_turns);
|
||||
|
||||
ov30_02385C54(arg0, &var_r6->long_toss_class_status.status, 1);
|
||||
|
||||
|
||||
ov30_02385C54(arg0, &var_r6->invisible_class_status.status, 1);
|
||||
ov30_02385D54(arg0, var_r6->invisible_class_status.turns);
|
||||
ov30_02385C54(arg0, &var_r6->blinker_class_status.blinded, 1);
|
||||
ov30_02385D54(arg0, var_r6->blinker_class_status.blinded_turns);
|
||||
ov30_02385C54(arg0, &var_r6->muzzled, 1);
|
||||
ov30_02385D54(arg0, var_r6->muzzled_turns);
|
||||
ov30_02385C54(arg0, &var_r6->miracle_eye, 1);
|
||||
ov30_02385D54(arg0, var_r6->miracle_eye_turns);
|
||||
ov30_02385C54(arg0, &var_r6->magnet_rise, 1);
|
||||
ov30_02385D54(arg0, var_r6->magnet_rise_turns);
|
||||
ov30_02385DD4(arg0, var_r6->power_ears);
|
||||
ov30_02385DD4(arg0, var_r6->scanning);
|
||||
ov30_02385DD4(arg0, var_r6->stair_spotter);
|
||||
ov30_02385DD4(arg0, var_r6->pickup_flag);
|
||||
#ifndef JAPAN
|
||||
ov30_02385DD4(arg0, var_r6->in_action);
|
||||
#endif
|
||||
ov30_02385DD4(arg0, var_r6->grudge);
|
||||
ov30_02385D54(arg0, var_r6->exp_yield);
|
||||
ov30_02385DD4(arg0, var_r6->exposed);
|
||||
ov30_02385DD4(arg0, var_r6->type_changed);
|
||||
ov30_02385DD4(arg0, var_r6->boss_flag);
|
||||
ov30_02385D54(arg0, var_r6->terrified);
|
||||
ov30_02385D54(arg0, var_r6->terrified_turns);
|
||||
ov30_02385DD4(arg0, var_r6->use_held_item);
|
||||
ov30_02385D54(arg0, var_r6->perish_song_turns);
|
||||
ov30_02385D54(arg0, var_r6->no_slip_cap_counter);
|
||||
ov30_02385D54(arg0, var_r6->field_0x10a);
|
||||
sp1 = var_r6->two_turn_move_invincible;
|
||||
ov30_02385C54(arg0, (s32* ) &sp1, 1);
|
||||
sp0 = var_r6->decoy_ai_tracker;
|
||||
ov30_02385C54(arg0, (s32* ) &sp0, 1);
|
||||
sp10 = var_r6->speed_stage;
|
||||
ov30_02385C54(arg0, &sp10, 4);
|
||||
ov30_02385EB8(arg0, var_r6->speed_up_counters, 5);
|
||||
ov30_02385EB8(arg0, var_r6->speed_down_counters, 5);
|
||||
ov30_02385D54(arg0, var_r6->stockpile_stage);
|
||||
ov30_02385D54(arg0, var_r6->field_0x11f);
|
||||
ov30_02385D54(arg0, (u8) var_r6->random_movement);
|
||||
|
||||
// moves
|
||||
for(int move_index = 0; move_index < MAX_MON_MOVES; move_index++)
|
||||
{
|
||||
struct move *move = &var_r6->moves.moves[move_index];
|
||||
ov30_02385D54(arg0, var_r6->moves.moves[move_index].flags0);
|
||||
ov30_02385D54(arg0, var_r6->moves.moves[move_index].flags2);
|
||||
ov30_02385C54(arg0, &move->id, 2);
|
||||
ov30_02385D54(arg0, var_r6->moves.moves[move_index].pp);
|
||||
ov30_02385D54(arg0, var_r6->moves.moves[move_index].ginseng);
|
||||
}
|
||||
|
||||
ov30_02385D54(arg0, var_r6->moves.struggle_move_flags);
|
||||
ov30_02385D34(arg0, var_r6->belly.integer);
|
||||
ov30_02385D34(arg0, var_r6->belly.fractional);
|
||||
ov30_02385D34(arg0, var_r6->max_belly.integer);
|
||||
ov30_02385D34(arg0, var_r6->max_belly.fractional);
|
||||
ov30_02385DD4(arg0, var_r6->ai_ally_skip);
|
||||
ov30_02385DD4(arg0, var_r6->ai_next_to_target);
|
||||
ov30_02385DD4(arg0, var_r6->waiting);
|
||||
ov30_02385DD4(arg0, var_r6->famished);
|
||||
ov30_02385DD4(arg0, var_r6->already_acted);
|
||||
ov30_02385DD4(arg0, var_r6->should_evolve);
|
||||
ov30_02385DD4(arg0, var_r6->using_charged_move);
|
||||
ov30_02385DD4(arg0, var_r6->hit_grudge_monster);
|
||||
ov30_02385DD4(arg0, var_r6->field_0x156);
|
||||
ov30_02385D14(arg0, var_r6->state_flags);
|
||||
ov30_02385D14(arg0, var_r6->prev_state_flags);
|
||||
ov30_02385DD4(arg0, var_r6->apply_flash_fire_boost);
|
||||
ov30_02385D54(arg0, var_r6->rollout_hit_counter);
|
||||
ov30_02385DD4(arg0, var_r6->memento_warp_flag);
|
||||
ov30_02385DD4(arg0, var_r6->overheat_special_attack_drop_flag);
|
||||
ov30_02385DD4(arg0, var_r6->display_shadow);
|
||||
ov30_02385D54(arg0, var_r6->sleep_talk_direction);
|
||||
ov30_02385D54(arg0, var_r6->snore_direction);
|
||||
ov30_02385D54(arg0, var_r6->field_0x179);
|
||||
ov30_02385D54(arg0, var_r6->field_0x17a);
|
||||
ov30_02385D54(arg0, var_r6->field_0x17b);
|
||||
ov30_02385D54(arg0, var_r6->field_0x17c);
|
||||
ov30_02385DF8(arg0, &var_r6->target_pos);
|
||||
ov30_02385DB4(arg0, var_r6->field_0x188);
|
||||
ov30_02385D14(arg0, var_r6->contact_ability_trigger_bitflags);
|
||||
ov30_02385D94(arg0, var_r6->exclusive_item_trigger_bitflags);
|
||||
ov30_02385D14(arg0, var_r6->field_0x190);
|
||||
ov30_02385D34(arg0, var_r6->hp_fractional);
|
||||
ov30_02385D34(arg0, var_r6->mobile_turn_timer);
|
||||
ov30_02385D74(arg0, var_r6->unk_exp_tracker);
|
||||
ov30_02385D54(arg0, var_r6->monster_behavior);
|
||||
ov30_02385D54(arg0, var_r6->practice_swinger_flag);
|
||||
ov30_02385D54(arg0, var_r6->anger_point_flag);
|
||||
ov30_02385D34(arg0, var_r6->field_0x168);
|
||||
ov30_02385D34(arg0, var_r6->bide_move_id);
|
||||
ov30_02385D54(arg0, var_r6->force_turn);
|
||||
|
||||
for(int var_r4 = 0; var_r4 < 5; var_r4++)
|
||||
{
|
||||
ov30_02385D54(arg0, var_r6->unk16B[var_r4]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user