mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
Moved IQ_SKILL_RESTRICTIONS to C
This commit is contained in:
parent
a24bde3d06
commit
4c89a2c02f
|
|
@ -49,15 +49,3 @@ VERSION_EXCLUSIVE_MONSTERS:
|
|||
.byte 0x19, 0x04, 0x00, 0x01, 0x0F, 0x00, 0x00, 0x01, 0x67, 0x02, 0x00, 0x01, 0xE9, 0x01, 0x01, 0x00
|
||||
.byte 0x41, 0x04, 0x01, 0x00, 0xEA, 0x01, 0x01, 0x00, 0x42, 0x04, 0x01, 0x00, 0x16, 0x01, 0x01, 0x00
|
||||
.byte 0x09, 0x02, 0x00, 0x01, 0x96, 0x00, 0x00, 0x01
|
||||
.global IQ_SKILL_RESTRICTIONS
|
||||
IQ_SKILL_RESTRICTIONS:
|
||||
.byte 0x0F, 0x27, 0x04, 0x00, 0x01, 0x00, 0x02, 0x00
|
||||
.byte 0x04, 0x00, 0x04, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00
|
||||
.byte 0x0A, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0B, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x0E, 0x00, 0x10, 0x00
|
||||
.byte 0x14, 0x00, 0x09, 0x00, 0x11, 0x00, 0x06, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00
|
||||
.byte 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x22, 0x00, 0x23, 0x00
|
||||
.byte 0x24, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00
|
||||
.byte 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00
|
||||
.byte 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00
|
||||
.byte 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x40, 0x00, 0x41, 0x00, 0x42, 0x00, 0x43, 0x00
|
||||
.byte 0x44, 0x00, 0x00, 0x00
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
#define PMDSKY_ENUMS_H
|
||||
|
||||
#define NUM_TACTICS TACTIC_NONE + 1
|
||||
#define MAX_NUM_IQ_SKILLS 25
|
||||
|
||||
// Tactic ID. These are usually encoded as bitvectors.
|
||||
enum tactic_id {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
#ifndef PMDSKY_IQ_SKILLS_H
|
||||
#define PMDSKY_IQ_SKILLS_H
|
||||
|
||||
#define NUM_IQ_SKILLS 69
|
||||
#define NUM_IQ_SKILLS_PER_GROUP 25
|
||||
#define NUM_IQ_GROUPS 16
|
||||
|
||||
#include "enums.h"
|
||||
|
||||
// Table of 4-byte values for each IQ skill that represent the required IQ value to unlock a skill.
|
||||
extern const s32 IQ_SKILLS[69];
|
||||
extern const enum iq_skill_id IQ_GROUP_SKILLS[16][25];
|
||||
extern const s32 IQ_SKILLS[NUM_IQ_SKILLS];
|
||||
extern const enum iq_skill_id IQ_GROUP_SKILLS[NUM_IQ_GROUPS][NUM_IQ_SKILLS_PER_GROUP];
|
||||
|
||||
#endif //PMDSKY_IQ_SKILLS_H
|
||||
|
|
|
|||
9
include/monster_parameters.h
Normal file
9
include/monster_parameters.h
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef PMDSKY_MONSTER_PARAMETERS_H
|
||||
#define PMDSKY_MONSTER_PARAMETERS_H
|
||||
|
||||
#include "iq_skills.h"
|
||||
|
||||
// Table of 2-byte values for each IQ skill that represent a group. IQ skills in the same group can not be enabled at the same time.
|
||||
extern const s16 IQ_SKILL_RESTRICTIONS[NUM_IQ_SKILLS + 1];
|
||||
|
||||
#endif //PMDSKY_MONSTER_PARAMETERS_H
|
||||
1
main.lsf
1
main.lsf
|
|
@ -108,6 +108,7 @@ Static main
|
|||
Object asm/main_02051788.o
|
||||
Object src/tactics_data.o
|
||||
Object asm/main_rodata_020A190C.o
|
||||
Object src/monster_parameters.o
|
||||
Object src/secondary_terrain_types.o
|
||||
Object asm/main_rodata_020A1BB0.o
|
||||
Object src/iq_skills.o
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "dungeon_parameters_3.h"
|
||||
#include "dungeon_parameters_4.h"
|
||||
#include "dungeon_util_static.h"
|
||||
#include "iq_skills.h"
|
||||
#include "main_02058CD8.h"
|
||||
#include "main_02058E68.h"
|
||||
#include "overlay_29_022FF898.h"
|
||||
|
|
@ -58,7 +59,7 @@ void UpdateIqSkills(struct monster *monster)
|
|||
monster->iq_skill_flags.flags[1] = 0;
|
||||
monster->iq_skill_flags.flags[2] = 0;
|
||||
|
||||
for (s32 i = 0; i < MAX_NUM_IQ_SKILLS; i++)
|
||||
for (s32 i = 0; i < NUM_IQ_SKILLS_PER_GROUP; i++)
|
||||
{
|
||||
enum iq_skill_id iq_skill = GetSpeciesIqSkill(monster->id, i);
|
||||
if (iq_skill == IQ_NONE_2)
|
||||
|
|
@ -93,7 +94,7 @@ void UpdateIqSkills(struct monster *monster)
|
|||
monster->iq_skill_flags.flags[0] = 0;
|
||||
monster->iq_skill_flags.flags[1] = 0;
|
||||
monster->iq_skill_flags.flags[2] = 0;
|
||||
for (s32 i = 0; i < MAX_NUM_IQ_SKILLS; i++)
|
||||
for (s32 i = 0; i < NUM_IQ_SKILLS_PER_GROUP; i++)
|
||||
{
|
||||
enum iq_skill_id iq_skill = GetSpeciesIqSkill(monster->id, i);
|
||||
if (iq_skill == IQ_NONE_2)
|
||||
|
|
|
|||
75
src/monster_parameters.c
Normal file
75
src/monster_parameters.c
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
#include "monster_parameters.h"
|
||||
|
||||
const s16 IQ_SKILL_RESTRICTIONS[NUM_IQ_SKILLS + 1] =
|
||||
{
|
||||
9999, // IQ_NONE
|
||||
4, // IQ_TYPE_ADVANTAGE_MASTER
|
||||
1, // IQ_ITEM_CATCHER
|
||||
2, // IQ_COURSE_CHECKER
|
||||
4, // IQ_SURE_HIT_ATTACKER
|
||||
4, // IQ_QUICK_DODGER
|
||||
6, // IQ_PP_CHECKER
|
||||
7, // IQ_NONTRAITOR
|
||||
8, // IQ_STATUS_CHECKER
|
||||
9, // IQ_EXP_GO_GETTER
|
||||
9, // IQ_EFFICIENCY_EXPERT
|
||||
9, // IQ_WEAK_TYPE_PICKER
|
||||
10, // IQ_ALL_TERRAIN_HIKER
|
||||
10, // IQ_ABSOLUTE_MOVER
|
||||
11, // IQ_TRAP_AVOIDER
|
||||
11, // IQ_HOUSE_AVOIDER
|
||||
14, // IQ_ENERGY_SAVER
|
||||
14, // IQ_NONSLEEPER
|
||||
14, // IQ_SELF_CURER
|
||||
16, // IQ_TRAP_SEER
|
||||
20, // IQ_LAVA_EVADER
|
||||
9, // IQ_DEDICATED_TRAVELER
|
||||
17, // IQ_ITEM_MASTER
|
||||
6, // IQ_EXCLUSIVE_MOVE_USER
|
||||
24, // IQ_ESCAPIST
|
||||
25, // IQ_LOCK_PICKER
|
||||
26, // IQ_STAIR_SENSOR
|
||||
27, // IQ_COIN_WATCHER
|
||||
28, // IQ_EXP_ELITE
|
||||
29, // IQ_SHARPSHOOTER
|
||||
30, // IQ_FAST_FRIEND
|
||||
31, // IQ_PP_SAVER
|
||||
32, // IQ_BODYGUARD
|
||||
33, // IQ_CAUTIOUS_CREEPER
|
||||
34, // IQ_AGGRESSOR
|
||||
35, // IQ_DEFENDER
|
||||
36, // IQ_INTIMIDATOR
|
||||
37, // IQ_SURVIVALIST
|
||||
38, // IQ_TRAP_BUSTER
|
||||
39, // IQ_COUNTER_HITTER
|
||||
40, // IQ_EXTRA_STRIKER
|
||||
41, // IQ_HIT_AND_RUNNER
|
||||
42, // IQ_PARRY_EXPERT
|
||||
43, // IQ_QUICK_STRIKER
|
||||
44, // IQ_NO_CHARGER
|
||||
45, // IQ_WARY_FIGHTER
|
||||
46, // IQ_GAP_PROBER
|
||||
47, // IQ_POWER_PITCHER
|
||||
48, // IQ_CONCENTRATOR
|
||||
49, // IQ_COUNTER_BASHER
|
||||
50, // IQ_CHEERLEADER
|
||||
51, // IQ_NATURE_GIFTER
|
||||
52, // IQ_WISE_HEALER
|
||||
53, // IQ_QUICK_HEALER
|
||||
54, // IQ_ACUTE_SNIFFER
|
||||
55, // IQ_DEEP_BREATHER
|
||||
56, // IQ_BRICK_TOUGH
|
||||
57, // IQ_MULTITALENT
|
||||
58, // IQ_TIME_TRIPPER
|
||||
59, // IQ_ERRATIC_PLAYER
|
||||
60, // IQ_PRACTICE_SWINGER
|
||||
61, // IQ_NO_DEFEATIST
|
||||
62, // IQ_HAGGLER
|
||||
63, // IQ_CLUTCH_PERFORMER
|
||||
64, // IQ_CRITICAL_DODGER
|
||||
65, // IQ_MAP_SURVEYOR
|
||||
66, // IQ_PIERCE_HURLER
|
||||
67, // IQ_COLLECTOR
|
||||
68, // IQ_TRUE_POWERIST
|
||||
0, // IQ_NONE_2
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user