Skip to content

Commit

Permalink
add external status getters
Browse files Browse the repository at this point in the history
  • Loading branch information
MokhaLeee committed Feb 5, 2025
1 parent d051c71 commit 40dd3ce
Show file tree
Hide file tree
Showing 12 changed files with 54 additions and 0 deletions.
12 changes: 12 additions & 0 deletions Preload/Reloc.event
Original file line number Diff line number Diff line change
Expand Up @@ -154,4 +154,16 @@ gpExternalPrePhaseHook: WORD 0
gpExternalPrePhaseHealCalc: WORD 0
gpExternalSkillListGenerator: WORD 0

gpExternalHpGetters: WORD 0
gpExternalPowGetters: WORD 0
gpExternalMagGetters: WORD 0
gpExternalSklGetters: WORD 0
gpExternalSpdGetters: WORD 0
gpExternalLckGetters: WORD 0
gpExternalDefGetters: WORD 0
gpExternalResGetters: WORD 0
gpExternalMovGetters: WORD 0
gpExternalConGetters: WORD 0
gpExternalAidGetters: WORD 0

KERNEL_RELOC_END:
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/AidGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,8 @@ int _GetUnitAid(struct Unit *unit)
for (it = gpAidGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalAidGetters)
status = gpExternalAidGetters(status, unit);

return status;
}
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/DefGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ int _GetUnitDefense(struct Unit *unit)
for (it = gpDefGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalDefGetters)
status = gpExternalDefGetters(status, unit);

return status;
}

Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/HpGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ int _GetUnitMaxHp(struct Unit *unit)
for (it = gpHpGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalHpGetters)
status = gpExternalHpGetters(status, unit);

return status;
}

Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/LckGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ int _GetUnitLuck(struct Unit *unit)
for (it = gpLckGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalLckGetters)
status = gpExternalLckGetters(status, unit);

return status;
}

Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/MagGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ int _GetUnitMagic(struct Unit *unit)
for (it = gpMagGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalMagGetters)
status = gpExternalMagGetters(status, unit);

return status;
}

Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/MovGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ int _GetUnitMov(struct Unit *unit)
for (it = gpMovGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalMovGetters)
status = gpExternalMovGetters(status, unit);

/* Some special effects */
if (gpDebuffInfos[GetUnitStatusIndex(unit)].cannot_move)
status = 0;
Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/PowGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ int _GetUnitPower(struct Unit *unit)
for (it = gpPowGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalPowGetters)
status = gpExternalPowGetters(status, unit);

return status;
}

Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/ResGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ int _GetUnitResistance(struct Unit *unit)
for (it = gpResGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalResGetters)
status = gpExternalResGetters(status, unit);

return status;
}

Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/SklGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ int _GetUnitSkill(struct Unit *unit)
for (it = gpSklGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalSklGetters)
status = gpExternalSklGetters(status, unit);

return status;
}

Expand Down
3 changes: 3 additions & 0 deletions Wizardry/Core/UnitStatusGetter/source/SpdGetter.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ int _GetUnitSpeed(struct Unit *unit)
for (it = gpSpdGetters; *it; it++)
status = (*it)(status, unit);

if (gpExternalSpdGetters)
status = gpExternalSpdGetters(status, unit);

return status;
}

Expand Down
12 changes: 12 additions & 0 deletions include/status-getter.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,18 @@ extern StatusGetterFunc_t const *const gpMovGetters;
extern StatusGetterFunc_t const *const gpConGetters;
extern StatusGetterFunc_t const *const gpAidGetters;

extern StatusGetterFunc_t const gpExternalHpGetters;
extern StatusGetterFunc_t const gpExternalPowGetters;
extern StatusGetterFunc_t const gpExternalMagGetters;
extern StatusGetterFunc_t const gpExternalSklGetters;
extern StatusGetterFunc_t const gpExternalSpdGetters;
extern StatusGetterFunc_t const gpExternalLckGetters;
extern StatusGetterFunc_t const gpExternalDefGetters;
extern StatusGetterFunc_t const gpExternalResGetters;
extern StatusGetterFunc_t const gpExternalMovGetters;
extern StatusGetterFunc_t const gpExternalConGetters;
extern StatusGetterFunc_t const gpExternalAidGetters;

int HpMaxGetter(struct Unit *unit);
int PowGetter(struct Unit *unit);
int MagGetter(struct Unit *unit);
Expand Down

0 comments on commit 40dd3ce

Please sign in to comment.