mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-27 03:07:22 -05:00
dungeon random with CalculateStatusTurns
This commit is contained in:
@@ -1,11 +1,5 @@
|
||||
.section .rodata
|
||||
|
||||
@ ???
|
||||
.string "pksdir0\0"
|
||||
@ ???
|
||||
.string "pksdir0\0"
|
||||
@ ???
|
||||
.string "pksdir0\0"
|
||||
@ ???
|
||||
.string "pksdir0\0"
|
||||
@ ???
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#ifndef GUARD_808417C_H
|
||||
#define GUARD_808417C_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
s32 CalculateStatusTurns(Entity *target, const s16 *turnRange, bool8 factorCurerSkills);
|
||||
|
||||
#endif // GUARD_808417C_H
|
||||
11
include/dungeon_8083AB0.h
Normal file
11
include/dungeon_8083AB0.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef GUARD_DUNGEON_8083AB0_H
|
||||
#define GUARD_DUNGEON_8083AB0_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
void sub_8083AB0(s16 param_0, Entity *target, Entity *entity);
|
||||
bool8 sub_8083C24(void);
|
||||
bool8 sub_8083C50(void);
|
||||
bool8 sub_8083C88(u8 param_1);
|
||||
|
||||
#endif // GUARD_DUNGEON_8083AB0_H
|
||||
@@ -12,10 +12,6 @@ void PlayDungeonStartButtonSE(void);
|
||||
void PlaySoundEffect(u32 songIndex);
|
||||
void StopDungeonBGM(void);
|
||||
void StopSoundEffect(u32 songIndex);
|
||||
void sub_8083AB0(s16 param_0, Entity *target, Entity *entity);
|
||||
bool8 sub_8083C24(void);
|
||||
bool8 sub_8083C50(void);
|
||||
bool8 sub_8083C88(u8);
|
||||
void UpdateDungeonMusic(void);
|
||||
|
||||
#endif // GUARD_DUNGEON_MUSIC_H
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_DUNGEON_RANDOM_H
|
||||
#define GUARD_DUNGEON_RANDOM_H
|
||||
|
||||
#include "structs/dungeon_entity.h"
|
||||
|
||||
void sub_808408C(u32 param_1);
|
||||
u32 YetAnotherRandom24(void);
|
||||
void InitDungeonRNG(u32 value);
|
||||
@@ -9,4 +11,6 @@ s32 DungeonRandInt(s32 cap);
|
||||
s32 DungeonRandRange(s32 low, s32 high);
|
||||
bool8 DungeonRandOutcome(s32 percentChance);
|
||||
bool8 DungeonRandOutcome_2(s32 percentChance);
|
||||
s32 CalculateStatusTurns(Entity *target, const s16 *turnRange, bool8 factorCurerSkills);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -279,7 +279,6 @@ SECTIONS {
|
||||
src/dungeon_8083AB0.o(.text);
|
||||
src/dungeon_music.o(.text);
|
||||
src/dungeon_random.o(.text);
|
||||
src/code_808417C.o(.text);
|
||||
asm/code_808417C.o(.text);
|
||||
src/code_8084778.o(.text);
|
||||
src/code_80848F0.o(.text);
|
||||
@@ -620,6 +619,9 @@ SECTIONS {
|
||||
src/trap.o(.rodata);
|
||||
data/pksdir_3.o(.rodata);
|
||||
src/dungeon_serializer.o(.rodata);
|
||||
src/dungeon_range.o(.rodata);
|
||||
src/dungeon_8083AB0.o(.rodata);
|
||||
src/dungeon_music.o(.rodata);
|
||||
data/data_8107224.o(.rodata);
|
||||
src/pokemon.o(.rodata);
|
||||
data/data_81076E4.o(.rodata);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "code_805D8C8.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/item.h"
|
||||
#include "constants/status.h"
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "dungeon_logic.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_util.h"
|
||||
|
||||
s32 CalculateStatusTurns(Entity *target, s16 *turnRange, bool8 factorCurerSkills)
|
||||
{
|
||||
s32 numTurns;
|
||||
|
||||
numTurns = DungeonRandRange(turnRange[0],turnRange[1]);
|
||||
if (EntityIsValid(target) && (GetEntityType(target) == ENTITY_MONSTER) && (factorCurerSkills)) {
|
||||
if (IQSkillIsEnabled(target, IQ_SELF_CURER) && (numTurns != 0x7f)) {
|
||||
numTurns /= 2;
|
||||
}
|
||||
if (AbilityIsActive(target, ABILITY_NATURAL_CURE) && (numTurns != 0x7f) && (4 < numTurns)) {
|
||||
numTurns = 5;
|
||||
}
|
||||
}
|
||||
if (numTurns < 1) {
|
||||
numTurns = 1;
|
||||
}
|
||||
return numTurns;
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "dungeon_8083AB0.h"
|
||||
#include "dungeon.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "text_util.h"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "code_803E724.h"
|
||||
#include "dungeon_message.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/direction.h"
|
||||
#include "constants/dungeon_action.h"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "dungeon_message.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/dungeon_action.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "constants/iq_skill.h"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "code_8044CC8.h"
|
||||
#include "code_8097DD0.h"
|
||||
#include "dungeon.h"
|
||||
#include "dungeon_8083AB0.h"
|
||||
#include "dungeon_action.h"
|
||||
#include "dungeon_leader.h"
|
||||
#include "dungeon_main.h"
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "def_filearchives.h"
|
||||
#include "code_803D110.h"
|
||||
#include "dungeon_strings.h"
|
||||
#include "dungeon_8083AB0.h"
|
||||
|
||||
static void EnsureCastformLoaded(void);
|
||||
static void EnsureDeoxysLoaded(void);
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_logic.h"
|
||||
#include "dungeon_config.h"
|
||||
#include "run_dungeon.h"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_logic.h"
|
||||
#include "dungeon_config.h"
|
||||
#include "run_dungeon.h"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "constants/bg_music.h"
|
||||
#include "structs/menu.h"
|
||||
#include "code_80118A4.h"
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
#include "global.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/iq_skill.h"
|
||||
#include "structs/dungeon_entity.h"
|
||||
#include "dungeon_logic.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "dungeon_util.h"
|
||||
|
||||
EWRAM_INIT u32 gDungeonRngState = {1};
|
||||
EWRAM_INIT u32 gUnknown_203B458 = {1};
|
||||
@@ -75,3 +81,21 @@ bool8 DungeonRandOutcome_2(s32 percentChance)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
s32 CalculateStatusTurns(Entity *target, const s16 *turnRange, bool8 factorCurerSkills)
|
||||
{
|
||||
s32 numTurns;
|
||||
|
||||
numTurns = DungeonRandRange(turnRange[0],turnRange[1]);
|
||||
if (EntityIsValid(target) && (GetEntityType(target) == ENTITY_MONSTER) && (factorCurerSkills)) {
|
||||
if (IQSkillIsEnabled(target, IQ_SELF_CURER) && (numTurns != 0x7f)) {
|
||||
numTurns /= 2;
|
||||
}
|
||||
if (AbilityIsActive(target, ABILITY_NATURAL_CURE) && (numTurns != 0x7f) && (4 < numTurns)) {
|
||||
numTurns = 5;
|
||||
}
|
||||
}
|
||||
if (numTurns < 1) {
|
||||
numTurns = 1;
|
||||
}
|
||||
return numTurns;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "globaldata.h"
|
||||
#include "dungeon_range.h"
|
||||
#include "dungeon_leader.h"
|
||||
#include "dungeon_util.h"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/targeting.h"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/targeting.h"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/move_id.h"
|
||||
#include "constants/status.h"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/move_id.h"
|
||||
#include "constants/status.h"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "dungeon_message.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/direction.h"
|
||||
#include "constants/dungeon_action.h"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "code_803E46C.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/type.h"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "code_805D8C8.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/item.h"
|
||||
#include "constants/status.h"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "code_805D8C8.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/item.h"
|
||||
#include "constants/status.h"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "code_805D8C8.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "constants/ability.h"
|
||||
#include "constants/item.h"
|
||||
#include "constants/status.h"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "code_8094F88.h"
|
||||
#include "code_8099360.h"
|
||||
#include "cpu.h"
|
||||
#include "dungeon_8083AB0.h"
|
||||
#include "dungeon.h"
|
||||
#include "dungeon_ai.h"
|
||||
#include "dungeon_config.h"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "dungeon_message.h"
|
||||
#include "code_8077274_1.h"
|
||||
#include "code_807CD9C.h"
|
||||
#include "code_808417C.h"
|
||||
#include "dungeon_random.h"
|
||||
#include "code_806CD90.h"
|
||||
#include "constants/trap.h"
|
||||
#include "constants/type.h"
|
||||
|
||||
Reference in New Issue
Block a user