Mercurial > mm7
comparison NPC.h @ 291:0ea5fbd16edb
NPC mostly done
author | Gloval |
---|---|
date | Tue, 19 Feb 2013 00:34:15 +0400 |
parents | f1218b9d67f1 |
children | 95be2dcecadf |
comparison
equal
deleted
inserted
replaced
290:4776715a964b | 291:0ea5fbd16edb |
---|---|
8 }; | 8 }; |
9 | 9 |
10 extern NPCTopic pNPCTopics[789]; | 10 extern NPCTopic pNPCTopics[789]; |
11 | 11 |
12 | 12 |
13 | |
14 | |
15 | |
16 /* 136 */ | 13 /* 136 */ |
17 #pragma pack(push, 1) | 14 #pragma pack(push, 1) |
18 struct NPCData | 15 struct NPCData //4Ch |
19 { | 16 { |
20 inline bool Hired() {return uFlags & 0x80;} | 17 inline bool Hired() {return uFlags & 0x80;} |
21 | 18 |
22 char *pName; | 19 char *pName; //0 |
23 unsigned int uPortraitID; | 20 unsigned int uPortraitID; //4 |
24 unsigned int uFlags; // & 0x80 no greeting on dialogue start; looks like hired | 21 unsigned int uFlags; //8 // & 0x80 no greeting on dialogue start; looks like hired |
25 int fame; | 22 int fame; //c |
26 int rep; | 23 int rep; //10 |
27 int house; | 24 unsigned int Location2D; //14 |
28 unsigned int uProfession; | 25 unsigned int uProfession; //18 |
29 int greet; | 26 int greet; //1c |
30 int joins; | 27 int joins; //20 |
31 int field_24; | 28 int field_24; |
32 unsigned int bDrawSomeAnim; | 29 unsigned int evt_A; //28 |
33 int _anim_current_time; //evtb | 30 unsigned int evt_B; //2c evtb |
34 int _anim_end_time; //evtc | 31 unsigned int evt_C; // 30 evtc |
35 int evtd; | 32 unsigned int evt_D; //34 |
36 int evte; | 33 unsigned int evt_E; //38 |
37 int evtf; | 34 unsigned int evt_F; //3c |
38 int uSex; | 35 unsigned int uSex; //40 |
39 int bHasUsedTheAbility; | 36 int bHasUsedTheAbility; //44 |
40 int news_topic; | 37 int news_topic; //48 |
41 }; | 38 }; |
42 #pragma pack(pop) | 39 #pragma pack(pop) |
43 | 40 |
44 | 41 |
45 /* 138 */ | 42 /* 138 */ |
55 #pragma pack(pop) | 52 #pragma pack(pop) |
56 | 53 |
57 | 54 |
58 /* 139 */ | 55 /* 139 */ |
59 #pragma pack(push, 1) | 56 #pragma pack(push, 1) |
60 struct NPCStats_stru0 | 57 struct NPCProfessionChance |
61 { | 58 { |
62 int field_0; //summ | 59 unsigned int uTotalprofChance; //summ |
63 char field_4[60]; //prof position | 60 char professionChancePerArea[60]; //prof position |
64 }; | 61 }; |
65 #pragma pack(pop) | 62 #pragma pack(pop) |
66 | 63 |
67 /* 140 */ | 64 /* 140 */ |
68 #pragma pack(push, 1) | 65 #pragma pack(push, 1) |
72 char *pGreeting2; | 69 char *pGreeting2; |
73 }; | 70 }; |
74 #pragma pack(pop) | 71 #pragma pack(pop) |
75 | 72 |
76 | 73 |
77 | |
78 /* 137 */ | 74 /* 137 */ |
79 #pragma pack(push, 1) | 75 #pragma pack(push, 1) |
80 struct NPCStats | 76 struct NPCStats |
81 { | 77 { |
82 inline NPCStats(): | 78 inline NPCStats(): |
83 pNPCTextTXT_Raw(nullptr), pNPCTopicTXT_Raw(nullptr), pNPCDistTXT_Raw(nullptr) | 79 pNPCTextTXT_Raw(nullptr), pNPCTopicTXT_Raw(nullptr), pNPCDistTXT_Raw(nullptr) |
84 { | 80 { |
85 uNumNPCNames[0] = uNumNPCNames[1] = 0; | 81 uNumNPCNames[0] = uNumNPCNames[1] = 0; |
86 } | 82 } |
87 | 83 |
88 void Initialize2(); | 84 void InitializeNPCText(); |
89 void Initialize1(); | 85 void InitializeNPCData(); |
90 void Initialize(); | 86 void Initialize(); |
91 void Release(); | 87 void Release(); |
92 bool InitializeAdditionalNPCs(NPCData *a2, int a3, int a4, int a5); | 88 void InitializeAdditionalNPCs(NPCData *pNPCDataBuff, int npc_uid, int uLocation2D, int uMapId); |
93 void _476C60(); | 89 void _476C60(); |
94 | 90 |
95 | 91 |
96 NPCData pNPCData[501]; | 92 NPCData pNPCData[501]; //0 - 94BCh count from 1 |
97 NPCData pNewNPCData[501]; | 93 NPCData pNewNPCData[501]; //94BCh- 12978h count from 1 |
98 char *pNPCNames[540][2]; | 94 char *pNPCNames[540][2]; |
99 int field_13A58; | 95 NPCProfession pProfessions[59]; //count from 1 |
100 int field_13A5C; | 96 NPCData pAdditionalNPC[100]; |
101 int field_13A60; | 97 char *pCatchPhrases[52]; //15CA4h |
102 int field_13A64; | 98 char *pNPCUnicNames[500]; //from first batch |
103 int field_13A68; | 99 NPCProfessionChance pProfessionChance[77]; //16544h profession chance in each area |
104 NPCProfession pProfessions[58]; | |
105 NPCData array_13EF4[100]; | |
106 char *pCatchPhrases[52]; | |
107 char *pNPCNames2[500]; | |
108 NPCStats_stru0 array_16544[77]; //16544h proffesion position in area | |
109 int field_17884; | 100 int field_17884; |
110 int field_17888; | 101 int field_17888; |
111 NPCGreeting pNPCGreetings[205]; | 102 NPCGreeting pNPCGreetings[205]; |
112 unsigned __int16 pGroups[51]; | 103 unsigned __int16 pGroups[51]; |
113 unsigned __int16 pGroups_copy[51]; | 104 unsigned __int16 pGroups_copy[51]; |
114 int field_17FC0; | 105 unsigned int uNewlNPCBufPos; |
115 unsigned int uNumNewNPCs; | 106 unsigned int uNumNewNPCs; |
116 int field_17FC8; | 107 int field_17FC8; |
117 unsigned int uNumNPCProfessions; | 108 unsigned int uNumNPCProfessions; |
118 unsigned int uNumNPCNames[2]; | 109 unsigned int uNumNPCNames[2]; //0 male 1 female |
119 char *pNPCDataTXT_Raw; | 110 char *pNPCDataTXT_Raw; |
120 char *pNPCNamesTXT_Raw; | 111 char *pNPCNamesTXT_Raw; |
121 char *pNPCProfTXT_Raw; | 112 char *pNPCProfTXT_Raw; |
122 char *pNPCNewsTXT_Raw; | 113 char *pNPCNewsTXT_Raw; |
123 char *pNPCTopicTXT_Raw; | 114 char *pNPCTopicTXT_Raw; |