diff NPC.h @ 291:0ea5fbd16edb

NPC mostly done
author Gloval
date Tue, 19 Feb 2013 00:34:15 +0400
parents f1218b9d67f1
children 95be2dcecadf
line wrap: on
line diff
--- a/NPC.h	Mon Feb 18 20:47:41 2013 +0600
+++ b/NPC.h	Tue Feb 19 00:34:15 2013 +0400
@@ -10,34 +10,31 @@
 extern NPCTopic pNPCTopics[789];
 
 
-
-
-
 /*  136 */
 #pragma pack(push, 1)
-struct NPCData
+struct NPCData  //4Ch
 {
   inline bool Hired() {return uFlags & 0x80;}
 
-  char *pName;
-  unsigned int uPortraitID;
-  unsigned int uFlags;         // & 0x80    no greeting on dialogue start; looks like hired
-  int fame;
-  int rep;
-  int house;
-  unsigned int uProfession;
-  int greet;
-  int joins;
+  char *pName;  //0
+  unsigned int uPortraitID;  //4
+  unsigned int uFlags;     //8    // & 0x80    no greeting on dialogue start; looks like hired
+  int fame;  //c
+  int rep;  //10
+  unsigned int Location2D;  //14
+  unsigned int uProfession; //18
+  int greet;  //1c
+  int joins;  //20
   int field_24;
-  unsigned int bDrawSomeAnim;
-  int _anim_current_time; //evtb
-  int _anim_end_time; //evtc
-  int evtd;
-  int evte;
-  int evtf;
-  int uSex;
-  int bHasUsedTheAbility;
-  int news_topic;
+  unsigned int evt_A; //28
+  unsigned int evt_B; //2c evtb
+  unsigned int evt_C; //  30 evtc
+  unsigned int evt_D;  //34
+  unsigned int evt_E;  //38
+  unsigned int evt_F;  //3c
+  unsigned int uSex;  //40
+  int bHasUsedTheAbility; //44
+  int news_topic;  //48
 };
 #pragma pack(pop)
 
@@ -57,10 +54,10 @@
 
 /*  139 */
 #pragma pack(push, 1)
-struct NPCStats_stru0
+struct NPCProfessionChance
 {
-  int field_0;  //summ 
-  char field_4[60]; //prof position
+  unsigned int uTotalprofChance;  //summ 
+  char professionChancePerArea[60]; //prof position
 };
 #pragma pack(pop)
 
@@ -74,7 +71,6 @@
 #pragma pack(pop)
 
 
-
 /*  137 */
 #pragma pack(push, 1)
 struct NPCStats
@@ -85,37 +81,32 @@
     uNumNPCNames[0] = uNumNPCNames[1] = 0;
   }
 
-  void Initialize2();
-  void Initialize1();
+  void InitializeNPCText();
+  void InitializeNPCData();
   void Initialize();
   void Release();
-  bool InitializeAdditionalNPCs(NPCData *a2, int a3, int a4, int a5);
+  void InitializeAdditionalNPCs(NPCData *pNPCDataBuff, int npc_uid, int uLocation2D, int uMapId);
   void _476C60();
 
   
-  NPCData pNPCData[501];
-  NPCData pNewNPCData[501];
+  NPCData pNPCData[501]; //0 - 94BCh count from 1 
+  NPCData pNewNPCData[501]; //94BCh- 12978h count from 1
   char *pNPCNames[540][2];
-  int field_13A58;
-  int field_13A5C;
-  int field_13A60;
-  int field_13A64;
-  int field_13A68;
-  NPCProfession pProfessions[58];
-  NPCData array_13EF4[100];
-  char *pCatchPhrases[52];
-  char *pNPCNames2[500];
-  NPCStats_stru0 array_16544[77]; //16544h proffesion position in area
+  NPCProfession pProfessions[59];  //count from 1
+  NPCData pAdditionalNPC[100];
+  char *pCatchPhrases[52];  //15CA4h
+  char *pNPCUnicNames[500];  //from first batch
+  NPCProfessionChance pProfessionChance[77]; //16544h profession chance in each area
   int field_17884;
   int field_17888;
   NPCGreeting pNPCGreetings[205];
   unsigned __int16 pGroups[51];
   unsigned __int16 pGroups_copy[51];
-  int field_17FC0;
+  unsigned int uNewlNPCBufPos;
   unsigned int uNumNewNPCs;
   int field_17FC8;
   unsigned int uNumNPCProfessions;
-  unsigned int uNumNPCNames[2];
+  unsigned int uNumNPCNames[2]; //0 male 1 female
   char *pNPCDataTXT_Raw;
   char *pNPCNamesTXT_Raw;
   char *pNPCProfTXT_Raw;