annotate NPC.h @ 679:c76775d819d6

m
author Ritor1
date Tue, 12 Mar 2013 23:26:43 +0600
parents 59713bb36033
children 1ff57450f090
rev   line source
0
Ritor1
parents:
diff changeset
1 #pragma once
Ritor1
parents:
diff changeset
2
374
Gloval
parents: 353
diff changeset
3 /*
Gloval
parents: 353
diff changeset
4 enum NPCProffession
Gloval
parents: 353
diff changeset
5 {
Gloval
parents: 353
diff changeset
6 Smith 1
Gloval
parents: 353
diff changeset
7 Armorer 2
Gloval
parents: 353
diff changeset
8 Alchemist 3
Gloval
parents: 353
diff changeset
9 Scholar 4
Gloval
parents: 353
diff changeset
10 Guide 5
Gloval
parents: 353
diff changeset
11 Tracker 6
Gloval
parents: 353
diff changeset
12 Pathfinder 7
Gloval
parents: 353
diff changeset
13 Sailor 8
Gloval
parents: 353
diff changeset
14 Navigator 9
Gloval
parents: 353
diff changeset
15 Healer 10
Gloval
parents: 353
diff changeset
16 Expert Healer 11
Gloval
parents: 353
diff changeset
17 Master Healer 12
Gloval
parents: 353
diff changeset
18 Teacher 13
Gloval
parents: 353
diff changeset
19 Instructor 14
Gloval
parents: 353
diff changeset
20 Arms Master 15
Gloval
parents: 353
diff changeset
21 Weapons Master 16
Gloval
parents: 353
diff changeset
22 Apprentice 17
Gloval
parents: 353
diff changeset
23 Mystic 18
Gloval
parents: 353
diff changeset
24 Spell Master 19
Gloval
parents: 353
diff changeset
25 Trader 20
Gloval
parents: 353
diff changeset
26 Merchant 21
Gloval
parents: 353
diff changeset
27 Scout 22
Gloval
parents: 353
diff changeset
28 Herbalist 23
Gloval
parents: 353
diff changeset
29 Apothecary 24
Gloval
parents: 353
diff changeset
30 Tinker 25
Gloval
parents: 353
diff changeset
31 Locksmith 26
Gloval
parents: 353
diff changeset
32 Fool 27
Gloval
parents: 353
diff changeset
33 Chimney Sweep 28
Gloval
parents: 353
diff changeset
34 Porter 29
Gloval
parents: 353
diff changeset
35 Quarter Master 30
Gloval
parents: 353
diff changeset
36 Factor 31
Gloval
parents: 353
diff changeset
37 Banker 32
Gloval
parents: 353
diff changeset
38 Cook 33
Gloval
parents: 353
diff changeset
39 Chef 34
Gloval
parents: 353
diff changeset
40 Horseman 35
Gloval
parents: 353
diff changeset
41 Bard 36
Gloval
parents: 353
diff changeset
42 Enchanter 37
Gloval
parents: 353
diff changeset
43 Cartographer 38
Gloval
parents: 353
diff changeset
44 Wind Master 39
Gloval
parents: 353
diff changeset
45 Water Master 40
Gloval
parents: 353
diff changeset
46 Gate Master 41
Gloval
parents: 353
diff changeset
47 Acolyte 42
Gloval
parents: 353
diff changeset
48 Piper 43
Gloval
parents: 353
diff changeset
49 Explorer 44
Gloval
parents: 353
diff changeset
50 Pirate 45
Gloval
parents: 353
diff changeset
51 Squire 46
Gloval
parents: 353
diff changeset
52 Psychic 47
Gloval
parents: 353
diff changeset
53 Gypsy 48
Gloval
parents: 353
diff changeset
54 Diplomat 49
Gloval
parents: 353
diff changeset
55 Duper 50
Gloval
parents: 353
diff changeset
56 Burglar 51
Gloval
parents: 353
diff changeset
57 Fallen Wizard 52
Gloval
parents: 353
diff changeset
58 Acolyte 53
Gloval
parents: 353
diff changeset
59 Initiate 54
Gloval
parents: 353
diff changeset
60 Prelate 55
Gloval
parents: 353
diff changeset
61 Monk 56
Gloval
parents: 353
diff changeset
62 Sage 57
Gloval
parents: 353
diff changeset
63 Hunter 58
Gloval
parents: 353
diff changeset
64
Gloval
parents: 353
diff changeset
65
Gloval
parents: 353
diff changeset
66 };
Gloval
parents: 353
diff changeset
67 */
Gloval
parents: 353
diff changeset
68
0
Ritor1
parents:
diff changeset
69
Ritor1
parents:
diff changeset
70 struct NPCTopic
Ritor1
parents:
diff changeset
71 {
Ritor1
parents:
diff changeset
72 const char *pTopic;
Ritor1
parents:
diff changeset
73 const char *pText;
Ritor1
parents:
diff changeset
74 };
Ritor1
parents:
diff changeset
75
Ritor1
parents:
diff changeset
76 extern NPCTopic pNPCTopics[789];
Ritor1
parents:
diff changeset
77
Ritor1
parents:
diff changeset
78
Ritor1
parents:
diff changeset
79 /* 136 */
Ritor1
parents:
diff changeset
80 #pragma pack(push, 1)
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
81 struct NPCData //4Ch
0
Ritor1
parents:
diff changeset
82 {
248
37dcbe8f3cca Dialogue stuff
Nomad
parents: 237
diff changeset
83 inline bool Hired() {return uFlags & 0x80;}
37dcbe8f3cca Dialogue stuff
Nomad
parents: 237
diff changeset
84
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
85 char *pName; //0
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
86 unsigned int uPortraitID; //4
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
87 unsigned int uFlags; //8 // & 0x80 no greeting on dialogue start; looks like hired
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
88 int fame; //c
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
89 int rep; //10
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
90 unsigned int Location2D; //14
353
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
91 unsigned int uProfession; //18 CheckHiredNPCSpeciality(uProfession)
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
92 /*
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
93
437
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
94 v0 = uDefaultTravelTime_ByFoot;
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
95 if ( CheckHiredNPCSpeciality(5u) )
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
96 --v0;
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
97 if ( CheckHiredNPCSpeciality(6u) )
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
98 v0 -= 2;
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
99 if ( CheckHiredNPCSpeciality(7u) )
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
100 v0 -= 3;
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
101 if ( CheckHiredNPCSpeciality(0x2Cu) )
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
102 --v0;
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
103
0a1ea44b4a0a ui mesages & spellcasting
Nomad
parents: 377
diff changeset
104
353
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
105 case PLAYER_SKILL_MONSTER_ID:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
106 if ( CheckHiredNPCSpeciality(58) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
107 skill += 6;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
108 if ( CheckHiredNPCSpeciality(57) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
109 skill += 6;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
110
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
111 case PLAYER_SKILL_ARMSMASTER:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
112 if ( CheckHiredNPCSpeciality(15) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
113 skill += 2;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
114 if ( CheckHiredNPCSpeciality(16) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
115 skill += 3;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
116
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
117 case PLAYER_SKILL_STEALING:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
118 if (CheckHiredNPCSpeciality(51))
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
119 skill +=
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
120
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
121 case PLAYER_SKILL_ALCHEMY:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
122 if ( CheckHiredNPCSpeciality(23) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
123 skill += 4;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
124 if ( CheckHiredNPCSpeciality(24) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
125 skill += 8
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
126
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
127 case PLAYER_SKILL_LEARNING:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
128 if ( CheckHiredNPCSpeciality(13) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
129 skill += 10;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
130 if ( CheckHiredNPCSpeciality(14) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
131 skill += 15;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
132 if ( CheckHiredNPCSpeciality(4) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
133 skill += 5;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
134
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
135 case PLAYER_SKILL_UNARMED:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
136 if (CheckHiredNPCSpeciality(56) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
137 skill +
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
138
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
139 case PLAYER_SKILL_DODGE:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
140 if ( CheckHiredNPCSpeciality(56) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
141 skill+
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
142
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
143 case PLAYER_SKILL_MERCHANT:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
144 if ( CheckHiredNPCSpeciality(20) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
145 skill += 4;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
146 if ( CheckHiredNPCSpeciality(21) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
147 skill += 6;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
148 if ( CheckHiredNPCSpeciality(48) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
149 skill += 3;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
150 if ( CheckHiredNPCSpeciality(50) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
151 skill += 8;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
152
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
153 case PLAYER_SKILL_PERCEPTION:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
154 if ( CheckHiredNPCSpeciality(22) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
155 v2 = 6;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
156 if ( CheckHiredNPCSpeciality(47) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
157 v2 += 5;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
158
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
159 case PLAYER_SKILL_TRAP_DISARM:
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
160 if ( CheckHiredNPCSpeciality(25) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
161 v2 = 4;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
162 if ( CheckHiredNPCSpeciality(26) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
163 v2 += 6;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
164 if ( CheckHiredNPCSpeciality(51) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
165 v2 += 8;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
166
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
167 FIRE WATER EARTH AIR
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
168 if ( CheckHiredNPCSpeciality(17) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
169 v2 = 2;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
170 if ( CheckHiredNPCSpeciality(18) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
171 v2 += 3;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
172 if ( CheckHiredNPCSpeciality(19) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
173 v2 += 4;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
174 if ( classType == PLAYER_CLASS_WARLOCK && PartyHasDragon() )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
175 v2 += 3;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
176
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
177 SPIRIT MIND BODY
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
178 if ( CheckHiredNPCSpeciality(53) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
179 v2 = 2;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
180 if ( CheckHiredNPCSpeciality(54) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
181 v2 += 3;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
182 if ( CheckHiredNPCSpeciality(55) )
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
183 v2 += 4;
95be2dcecadf Partial refactor for Player::GetActualSkillLevel
Nomad
parents: 291
diff changeset
184 */
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
185 int greet; //1c
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
186 int joins; //20
0
Ritor1
parents:
diff changeset
187 int field_24;
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
188 unsigned int evt_A; //28
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
189 unsigned int evt_B; //2c evtb
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
190 unsigned int evt_C; // 30 evtc
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
191 unsigned int evt_D; //34
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
192 unsigned int evt_E; //38
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
193 unsigned int evt_F; //3c
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
194 unsigned int uSex; //40
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
195 int bHasUsedTheAbility; //44
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
196 int news_topic; //48
0
Ritor1
parents:
diff changeset
197 };
Ritor1
parents:
diff changeset
198 #pragma pack(pop)
Ritor1
parents:
diff changeset
199
Ritor1
parents:
diff changeset
200
Ritor1
parents:
diff changeset
201 /* 138 */
Ritor1
parents:
diff changeset
202 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
203 struct NPCProfession
Ritor1
parents:
diff changeset
204 {
618
5cfb5dadf330 Margareth righ-click (addded constructor to NPCProfession) and cleaned BLV debug logs
Nomad
parents: 437
diff changeset
205 inline NPCProfession():
5cfb5dadf330 Margareth righ-click (addded constructor to NPCProfession) and cleaned BLV debug logs
Nomad
parents: 437
diff changeset
206 uHirePrice(0), pBenefits(nullptr), pActionText(nullptr), pJoinText(nullptr), pDismissText(nullptr)
5cfb5dadf330 Margareth righ-click (addded constructor to NPCProfession) and cleaned BLV debug logs
Nomad
parents: 437
diff changeset
207 {}
5cfb5dadf330 Margareth righ-click (addded constructor to NPCProfession) and cleaned BLV debug logs
Nomad
parents: 437
diff changeset
208
0
Ritor1
parents:
diff changeset
209 unsigned int uHirePrice;
Ritor1
parents:
diff changeset
210 char *pBenefits;
Ritor1
parents:
diff changeset
211 char *pActionText;
Ritor1
parents:
diff changeset
212 char *pJoinText;
Ritor1
parents:
diff changeset
213 char *pDismissText;
Ritor1
parents:
diff changeset
214 };
Ritor1
parents:
diff changeset
215 #pragma pack(pop)
Ritor1
parents:
diff changeset
216
Ritor1
parents:
diff changeset
217
Ritor1
parents:
diff changeset
218 /* 139 */
Ritor1
parents:
diff changeset
219 #pragma pack(push, 1)
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
220 struct NPCProfessionChance
0
Ritor1
parents:
diff changeset
221 {
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
222 unsigned int uTotalprofChance; //summ
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
223 char professionChancePerArea[60]; //prof position
0
Ritor1
parents:
diff changeset
224 };
Ritor1
parents:
diff changeset
225 #pragma pack(pop)
Ritor1
parents:
diff changeset
226
Ritor1
parents:
diff changeset
227 /* 140 */
Ritor1
parents:
diff changeset
228 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
229 struct NPCGreeting
Ritor1
parents:
diff changeset
230 {
377
243418228760 GetIdentifiedName
Gloval
parents: 374
diff changeset
231 char *pGreeting1; //at first meet
243418228760 GetIdentifiedName
Gloval
parents: 374
diff changeset
232 char *pGreeting2; // at latest meets
0
Ritor1
parents:
diff changeset
233 };
Ritor1
parents:
diff changeset
234 #pragma pack(pop)
Ritor1
parents:
diff changeset
235
Ritor1
parents:
diff changeset
236
Ritor1
parents:
diff changeset
237 /* 137 */
Ritor1
parents:
diff changeset
238 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
239 struct NPCStats
Ritor1
parents:
diff changeset
240 {
Ritor1
parents:
diff changeset
241 inline NPCStats():
Ritor1
parents:
diff changeset
242 pNPCTextTXT_Raw(nullptr), pNPCTopicTXT_Raw(nullptr), pNPCDistTXT_Raw(nullptr)
Ritor1
parents:
diff changeset
243 {
Ritor1
parents:
diff changeset
244 uNumNPCNames[0] = uNumNPCNames[1] = 0;
Ritor1
parents:
diff changeset
245 }
Ritor1
parents:
diff changeset
246
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
247 void InitializeNPCText();
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
248 void InitializeNPCData();
0
Ritor1
parents:
diff changeset
249 void Initialize();
Ritor1
parents:
diff changeset
250 void Release();
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
251 void InitializeAdditionalNPCs(NPCData *pNPCDataBuff, int npc_uid, int uLocation2D, int uMapId);
0
Ritor1
parents:
diff changeset
252 void _476C60();
Ritor1
parents:
diff changeset
253
237
2799737f8a74 more text parsers refactor
Gloval
parents: 188
diff changeset
254
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
255 NPCData pNPCData[501]; //0 - 94BCh count from 1
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
256 NPCData pNewNPCData[501]; //94BCh- 12978h count from 1
0
Ritor1
parents:
diff changeset
257 char *pNPCNames[540][2];
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
258 NPCProfession pProfessions[59]; //count from 1
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
259 NPCData pAdditionalNPC[100];
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
260 char *pCatchPhrases[52]; //15CA4h
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
261 char *pNPCUnicNames[500]; //from first batch
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
262 NPCProfessionChance pProfessionChance[77]; //16544h profession chance in each area
0
Ritor1
parents:
diff changeset
263 int field_17884;
Ritor1
parents:
diff changeset
264 int field_17888;
Ritor1
parents:
diff changeset
265 NPCGreeting pNPCGreetings[205];
Ritor1
parents:
diff changeset
266 unsigned __int16 pGroups[51];
Ritor1
parents:
diff changeset
267 unsigned __int16 pGroups_copy[51];
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
268 unsigned int uNewlNPCBufPos;
0
Ritor1
parents:
diff changeset
269 unsigned int uNumNewNPCs;
Ritor1
parents:
diff changeset
270 int field_17FC8;
Ritor1
parents:
diff changeset
271 unsigned int uNumNPCProfessions;
291
0ea5fbd16edb NPC mostly done
Gloval
parents: 253
diff changeset
272 unsigned int uNumNPCNames[2]; //0 male 1 female
0
Ritor1
parents:
diff changeset
273 char *pNPCDataTXT_Raw;
Ritor1
parents:
diff changeset
274 char *pNPCNamesTXT_Raw;
Ritor1
parents:
diff changeset
275 char *pNPCProfTXT_Raw;
Ritor1
parents:
diff changeset
276 char *pNPCNewsTXT_Raw;
Ritor1
parents:
diff changeset
277 char *pNPCTopicTXT_Raw;
Ritor1
parents:
diff changeset
278 char *pNPCTextTXT_Raw;
Ritor1
parents:
diff changeset
279 char *pNPCDistTXT_Raw;
Ritor1
parents:
diff changeset
280 char *pNPCGreetTXT_Raw;
Ritor1
parents:
diff changeset
281 char *pNCPGroupTXT_Raw;
Ritor1
parents:
diff changeset
282 };
Ritor1
parents:
diff changeset
283 #pragma pack(pop)
Ritor1
parents:
diff changeset
284
629
59713bb36033 houses func moved to uihouses
Gloval
parents: 618
diff changeset
285 extern int pDialogueNPCCount;
59713bb36033 houses func moved to uihouses
Gloval
parents: 618
diff changeset
286 extern struct Texture *pDialogueNPCPortraits[6];
59713bb36033 houses func moved to uihouses
Gloval
parents: 618
diff changeset
287 extern int uNumDialogueNPCPortraits; // weak
59713bb36033 houses func moved to uihouses
Gloval
parents: 618
diff changeset
288 extern struct NPCStats *pNPCStats;
59713bb36033 houses func moved to uihouses
Gloval
parents: 618
diff changeset
289
253
Gloval
parents: 252
diff changeset
290 bool PartyHasDragon();
251
48f21f569328 Npc related stuff separated
Gloval
parents: 237
diff changeset
291 bool CheckHiredNPCSpeciality(unsigned int uProfession);