2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/src/sim/plyskill.cpp,v 1.9 2000/02/19 13:27:45 toml Exp $
8 // This contains static data about the set of skills that the player knows
9 // for each mode he has (where mode determined by wielded item).
15 #include <dbmem.h> // must be last header!
17 static tSkillID g_aUnarmedSkills
[] =
22 static tSkillID g_aBowSkills
[] =
27 static tSkillID g_aSwordSkills
[] =
32 static tSkillID g_aSwordStartActionSkills
[kPlayerSwordNumActions
] =
35 "PlayerSwordWindShort",
36 "PlayerSwordWindMedium",
37 "PlayerSwordWindLong",
40 static tSkillID g_aLockPickSkills
[] =
45 static tSkillID g_aFlexiBowSkills
[] =
53 typedef struct sSkillSetInfo
57 tSkillID
*pStartActionSkills
;
58 int nStartActionSkills
;
61 static sSkillSetInfo g_aPlayerSkills
[kPlayerNumModes
] = \
64 g_aUnarmedSkills
, sizeof(g_aUnarmedSkills
)/sizeof(tSkillID
), \
67 g_aBowSkills
, sizeof(g_aBowSkills
)/sizeof(tSkillID
),
70 g_aSwordSkills
, sizeof(g_aSwordSkills
)/sizeof(tSkillID
),
71 g_aSwordStartActionSkills
, sizeof(g_aSwordStartActionSkills
)/sizeof(tSkillID
),
74 g_aLockPickSkills
, sizeof(g_aLockPickSkills
)/sizeof(tSkillID
),
77 g_aFlexiBowSkills
, sizeof(g_aFlexiBowSkills
)/sizeof(tSkillID
),
82 void PlayerSkillsGetForMode(const ePlayerMode mode
, int *nSkills
, tSkillID
**ppSkills
)
84 if(mode
!=kPlayerModeInvalid
)
86 *nSkills
=g_aPlayerSkills
[mode
].nSkills
;
87 *ppSkills
=g_aPlayerSkills
[mode
].pSkills
;
96 // returns the skill to begin with in specified player mode
98 // Assuming that convention is followed that beginning skill always appears first
99 tSkillID
PlayerSkillsGetStartingForMode(const ePlayerMode mode
)
101 if(mode
==kPlayerModeInvalid
|| mode
>=kPlayerNumModes
|| g_aPlayerSkills
[mode
].nSkills
<1)
106 return g_aPlayerSkills
[mode
].pSkills
[0];
110 // returns the skill to begin action from in specified player mode
111 BOOL
PlayerSkillGetStartActionSkillForMode(const ePlayerMode mode
, tPlayerActionType actionType
, tSkillID
*pSkillID
)
113 if(mode
==kPlayerModeInvalid
|| mode
>=kPlayerNumModes
||
114 g_aPlayerSkills
[mode
].nStartActionSkills
<=actionType
|| g_aPlayerSkills
[mode
].pStartActionSkills
==NULL
)
116 Warning(("No player action %d for mode %d\n",actionType
,mode
));
120 *pSkillID
=g_aPlayerSkills
[mode
].pStartActionSkills
[actionType
];