0
|
1 #pragma once
|
|
2
|
|
3
|
|
4 struct NPCTopic
|
|
5 {
|
|
6 const char *pTopic;
|
|
7 const char *pText;
|
|
8 };
|
|
9
|
|
10 extern NPCTopic pNPCTopics[789];
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16 /* 136 */
|
|
17 #pragma pack(push, 1)
|
|
18 struct NPCData
|
|
19 {
|
248
|
20 inline bool Hired() {return uFlags & 0x80;}
|
|
21
|
0
|
22 char *pName;
|
|
23 unsigned int uPortraitID;
|
248
|
24 unsigned int uFlags; // & 0x80 no greeting on dialogue start; looks like hired
|
0
|
25 int fame;
|
|
26 int rep;
|
|
27 int house;
|
|
28 unsigned int uProfession;
|
|
29 int greet;
|
|
30 int joins;
|
|
31 int field_24;
|
|
32 unsigned int bDrawSomeAnim;
|
130
|
33 int _anim_current_time; //evtb
|
|
34 int _anim_end_time; //evtc
|
0
|
35 int evtd;
|
|
36 int evte;
|
|
37 int evtf;
|
|
38 int uSex;
|
|
39 int bHasUsedTheAbility;
|
|
40 int news_topic;
|
|
41 };
|
|
42 #pragma pack(pop)
|
|
43
|
|
44
|
|
45 /* 138 */
|
|
46 #pragma pack(push, 1)
|
|
47 struct NPCProfession
|
|
48 {
|
|
49 unsigned int uHirePrice;
|
|
50 char *pBenefits;
|
|
51 char *pActionText;
|
|
52 char *pJoinText;
|
|
53 char *pDismissText;
|
|
54 };
|
|
55 #pragma pack(pop)
|
|
56
|
|
57
|
|
58 /* 139 */
|
|
59 #pragma pack(push, 1)
|
|
60 struct NPCStats_stru0
|
|
61 {
|
237
|
62 int field_0; //summ
|
|
63 char field_4[60]; //prof position
|
0
|
64 };
|
|
65 #pragma pack(pop)
|
|
66
|
|
67 /* 140 */
|
|
68 #pragma pack(push, 1)
|
|
69 struct NPCGreeting
|
|
70 {
|
|
71 char *pGreeting1;
|
|
72 char *pGreeting2;
|
|
73 };
|
|
74 #pragma pack(pop)
|
|
75
|
|
76
|
|
77
|
|
78 /* 137 */
|
|
79 #pragma pack(push, 1)
|
|
80 struct NPCStats
|
|
81 {
|
|
82 inline NPCStats():
|
|
83 pNPCTextTXT_Raw(nullptr), pNPCTopicTXT_Raw(nullptr), pNPCDistTXT_Raw(nullptr)
|
|
84 {
|
|
85 uNumNPCNames[0] = uNumNPCNames[1] = 0;
|
|
86 }
|
|
87
|
|
88 void Initialize2();
|
|
89 void Initialize1();
|
|
90 void Initialize();
|
|
91 void Release();
|
|
92 bool InitializeAdditionalNPCs(NPCData *a2, int a3, int a4, int a5);
|
|
93 void _476C60();
|
|
94
|
237
|
95
|
0
|
96 NPCData pNPCData[501];
|
|
97 NPCData pNewNPCData[501];
|
|
98 char *pNPCNames[540][2];
|
|
99 int field_13A58;
|
|
100 int field_13A5C;
|
|
101 int field_13A60;
|
|
102 int field_13A64;
|
|
103 int field_13A68;
|
|
104 NPCProfession pProfessions[58];
|
|
105 NPCData array_13EF4[100];
|
|
106 char *pCatchPhrases[52];
|
|
107 char *pNPCNames2[500];
|
237
|
108 NPCStats_stru0 array_16544[77]; //16544h proffesion position in area
|
0
|
109 int field_17884;
|
|
110 int field_17888;
|
|
111 NPCGreeting pNPCGreetings[205];
|
|
112 unsigned __int16 pGroups[51];
|
|
113 unsigned __int16 pGroups_copy[51];
|
|
114 int field_17FC0;
|
|
115 unsigned int uNumNewNPCs;
|
|
116 int field_17FC8;
|
|
117 unsigned int uNumNPCProfessions;
|
|
118 unsigned int uNumNPCNames[2];
|
|
119 char *pNPCDataTXT_Raw;
|
|
120 char *pNPCNamesTXT_Raw;
|
|
121 char *pNPCProfTXT_Raw;
|
|
122 char *pNPCNewsTXT_Raw;
|
|
123 char *pNPCTopicTXT_Raw;
|
|
124 char *pNPCTextTXT_Raw;
|
|
125 char *pNPCDistTXT_Raw;
|
|
126 char *pNPCGreetTXT_Raw;
|
|
127 char *pNCPGroupTXT_Raw;
|
|
128 };
|
|
129 #pragma pack(pop)
|
|
130
|
253
|
131 bool PartyHasDragon();
|
251
|
132 bool CheckHiredNPCSpeciality(unsigned int uProfession);
|