Mercurial > mm7
comparison mm7_3.cpp @ 291:0ea5fbd16edb
NPC mostly done
author | Gloval |
---|---|
date | Tue, 19 Feb 2013 00:34:15 +0400 |
parents | 0b58962bf229 |
children | af7e848d6def |
comparison
equal
deleted
inserted
replaced
290:4776715a964b | 291:0ea5fbd16edb |
---|---|
15228 strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[406]); // Hire | 15228 strcpy(v14->pButtonName, pGlobalTXT_LocalizationStrings[406]); // Hire |
15229 } | 15229 } |
15230 else if (v16 == 24) | 15230 else if (v16 == 24) |
15231 { | 15231 { |
15232 __debugbreak(); // learn conditions of this event | 15232 __debugbreak(); // learn conditions of this event |
15233 auto topic = pNPCTopics[pNPC->evtf - 1].pTopic;//(&dword_721660)[8 * v23]; | 15233 auto topic = pNPCTopics[pNPC->evt_F - 1].pTopic;//(&dword_721660)[8 * v23]; |
15234 if (!topic) | 15234 if (!topic) |
15235 { | 15235 { |
15236 v14->pButtonName[0] = 0; | 15236 v14->pButtonName[0] = 0; |
15237 v14->uControlParam = 0; | 15237 v14->uControlParam = 0; |
15238 } | 15238 } |
15242 else if (v16 == 9) | 15242 else if (v16 == 9) |
15243 strcpy(v14->pButtonName, GetProfessionActionText(pNPC->uProfession)); | 15243 strcpy(v14->pButtonName, GetProfessionActionText(pNPC->uProfession)); |
15244 else if (v16 == 19) | 15244 else if (v16 == 19) |
15245 { | 15245 { |
15246 __debugbreak(); // learn conditions of this event | 15246 __debugbreak(); // learn conditions of this event |
15247 auto topic = pNPCTopics[pNPC->bDrawSomeAnim - 1].pTopic;//(&dword_721660)[8 * v23]; | 15247 auto topic = pNPCTopics[pNPC->evt_A - 1].pTopic;//(&dword_721660)[8 * v23]; |
15248 if (!topic) | 15248 if (!topic) |
15249 { | 15249 { |
15250 v14->pButtonName[0] = 0; | 15250 v14->pButtonName[0] = 0; |
15251 v14->uControlParam = 0; | 15251 v14->uControlParam = 0; |
15252 } | 15252 } |
15253 else strcpy(v14->pButtonName, topic); | 15253 else strcpy(v14->pButtonName, topic); |
15254 } | 15254 } |
15255 else if (v16 == 20) | 15255 else if (v16 == 20) |
15256 { | 15256 { |
15257 __debugbreak(); // learn conditions of this event | 15257 __debugbreak(); // learn conditions of this event |
15258 auto topic = pNPCTopics[pNPC->_anim_current_time - 1].pTopic;//(&dword_721660)[8 * v23]; | 15258 auto topic = pNPCTopics[pNPC->evt_B - 1].pTopic;//(&dword_721660)[8 * v23]; |
15259 if (!topic) | 15259 if (!topic) |
15260 { | 15260 { |
15261 v14->pButtonName[0] = 0; | 15261 v14->pButtonName[0] = 0; |
15262 v14->uControlParam = 0; | 15262 v14->uControlParam = 0; |
15263 } | 15263 } |
15264 else strcpy(v14->pButtonName, topic); | 15264 else strcpy(v14->pButtonName, topic); |
15265 } | 15265 } |
15266 else if (v16 == 21) | 15266 else if (v16 == 21) |
15267 { | 15267 { |
15268 __debugbreak(); // learn conditions of this event | 15268 __debugbreak(); // learn conditions of this event |
15269 auto topic = pNPCTopics[pNPC->_anim_end_time - 1].pTopic;//(&dword_721660)[8 * v23]; | 15269 auto topic = pNPCTopics[pNPC->evt_C - 1].pTopic;//(&dword_721660)[8 * v23]; |
15270 if (!topic) | 15270 if (!topic) |
15271 { | 15271 { |
15272 v14->pButtonName[0] = 0; | 15272 v14->pButtonName[0] = 0; |
15273 v14->uControlParam = 0; | 15273 v14->uControlParam = 0; |
15274 } | 15274 } |
15275 else strcpy(v14->pButtonName, topic); | 15275 else strcpy(v14->pButtonName, topic); |
15276 } | 15276 } |
15277 else if (v16 == 22) | 15277 else if (v16 == 22) |
15278 { | 15278 { |
15279 __debugbreak(); // learn conditions of this event | 15279 __debugbreak(); // learn conditions of this event |
15280 auto topic = pNPCTopics[pNPC->evtd - 1].pTopic;//(&dword_721660)[8 * v23]; | 15280 auto topic = pNPCTopics[pNPC->evt_D - 1].pTopic;//(&dword_721660)[8 * v23]; |
15281 if (!topic) | 15281 if (!topic) |
15282 { | 15282 { |
15283 v14->pButtonName[0] = 0; | 15283 v14->pButtonName[0] = 0; |
15284 v14->uControlParam = 0; | 15284 v14->uControlParam = 0; |
15285 } | 15285 } |
15286 else strcpy(v14->pButtonName, topic); | 15286 else strcpy(v14->pButtonName, topic); |
15287 } | 15287 } |
15288 else if (v16 == 23) | 15288 else if (v16 == 23) |
15289 { | 15289 { |
15290 __debugbreak(); // learn conditions of this event | 15290 __debugbreak(); // learn conditions of this event |
15291 auto topic = pNPCTopics[pNPC->evte - 1].pTopic;//(&dword_721660)[8 * v23]; | 15291 auto topic = pNPCTopics[pNPC->evt_E - 1].pTopic;//(&dword_721660)[8 * v23]; |
15292 if (!topic) | 15292 if (!topic) |
15293 { | 15293 { |
15294 v14->pButtonName[0] = 0; | 15294 v14->pButtonName[0] = 0; |
15295 v14->uControlParam = 0; | 15295 v14->uControlParam = 0; |
15296 } | 15296 } |
15475 { | 15475 { |
15476 MessageBoxW(nullptr, L"NPC id exceeds MAX_DATA!", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Events.cpp:1984", 0); | 15476 MessageBoxW(nullptr, L"NPC id exceeds MAX_DATA!", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Events.cpp:1984", 0); |
15477 } | 15477 } |
15478 return &pNPCStats->pNewNPCData[v1];// - 1]; | 15478 return &pNPCStats->pNewNPCData[v1];// - 1]; |
15479 } | 15479 } |
15480 return &pNPCStats->array_13EF4[npcid - 5000]; | 15480 return &pNPCStats->pAdditionalNPC[npcid - 5000]; |
15481 } | 15481 } |
15482 | 15482 |
15483 | 15483 |
15484 if ( npcid >= 5000 ) | 15484 if ( npcid >= 5000 ) |
15485 return &pNPCStats->array_13EF4[npcid - 5000]; | 15485 return &pNPCStats->pAdditionalNPC[npcid - 5000]; |
15486 if (uDialogue_SpeakingActorNPC_ID >= 0) | 15486 if (uDialogue_SpeakingActorNPC_ID >= 0) |
15487 { | 15487 { |
15488 result = 0; | 15488 result = 0; |
15489 } | 15489 } |
15490 else | 15490 else |
15556 *(int *)v3 = v2; | 15556 *(int *)v3 = v2; |
15557 return &pNPCStats->pNewNPCData[v2]; | 15557 return &pNPCStats->pNewNPCData[v2]; |
15558 } | 15558 } |
15559 LABEL_7: | 15559 LABEL_7: |
15560 *(int *)a2 = npcid - 5000; | 15560 *(int *)a2 = npcid - 5000; |
15561 return &pNPCStats->array_13EF4[npcid - 5000]; | 15561 return &pNPCStats->pAdditionalNPC[npcid - 5000]; |
15562 } | 15562 } |
15563 if ( npcid >= 5000 ) | 15563 if ( npcid >= 5000 ) |
15564 goto LABEL_7; | 15564 goto LABEL_7; |
15565 if ( (uDialogue_SpeakingActorNPC_ID & 0x80000000u) == 0 ) | 15565 if ( (uDialogue_SpeakingActorNPC_ID & 0x80000000u) == 0 ) |
15566 { | 15566 { |
16312 { | 16312 { |
16313 v37 = v36 - 1; | 16313 v37 = v36 - 1; |
16314 if ( v37 ) | 16314 if ( v37 ) |
16315 { | 16315 { |
16316 if ( v37 == 1 ) | 16316 if ( v37 == 1 ) |
16317 v33->evtf = v30; | 16317 v33->evt_F = v30; |
16318 } | 16318 } |
16319 else | 16319 else |
16320 { | 16320 { |
16321 v33->evte = v30; | 16321 v33->evt_E = v30; |
16322 } | 16322 } |
16323 } | 16323 } |
16324 else | 16324 else |
16325 { | 16325 { |
16326 v33->evtd = v30; | 16326 v33->evt_D = v30; |
16327 } | 16327 } |
16328 } | 16328 } |
16329 else | 16329 else |
16330 { | 16330 { |
16331 v33->_anim_end_time = v30; | 16331 v33->evt_C = v30; |
16332 } | 16332 } |
16333 } | 16333 } |
16334 else | 16334 else |
16335 { | 16335 { |
16336 v33->_anim_current_time = v30; | 16336 v33->evt_B = v30; |
16337 } | 16337 } |
16338 } | 16338 } |
16339 else | 16339 else |
16340 { | 16340 { |
16341 v33->bDrawSomeAnim = v30; | 16341 v33->evt_A = v30; |
16342 } | 16342 } |
16343 if ( v29 == 8 ) | 16343 if ( v29 == 8 ) |
16344 { | 16344 { |
16345 if ( v30 == 78 ) | 16345 if ( v30 == 78 ) |
16346 { | 16346 { |
16446 //v5 = pSomeEVT; | 16446 //v5 = pSomeEVT; |
16447 //v6 = v123; | 16447 //v6 = v123; |
16448 //v7 = ""; | 16448 //v7 = ""; |
16449 break; | 16449 break; |
16450 case EVENT_MoveNPC: | 16450 case EVENT_MoveNPC: |
16451 pNPCStats->pNewNPCData[_evt->v5 + ((_evt->v6 + ((_evt->v7 + ((uint)_evt->v8 << 8)) << 8)) << 8)].house = _evt->v9 + ((_evt->v10 + ((_evt->v11 + ((uint)_evt->v12 << 8)) << 8)) << 8); | 16451 pNPCStats->pNewNPCData[_evt->v5 + ((_evt->v6 + ((_evt->v7 + ((uint)_evt->v8 << 8)) << 8)) << 8)].Location2D = _evt->v9 + ((_evt->v10 + ((_evt->v11 + ((uint)_evt->v12 << 8)) << 8)) << 8); |
16452 if ( ptr_507BC0 ) | 16452 if ( ptr_507BC0 ) |
16453 { | 16453 { |
16454 v46 = ptr_507BC0->ptr_1C; | 16454 v46 = ptr_507BC0->ptr_1C; |
16455 if ( v46 == (void *)165 ) | 16455 if ( v46 == (void *)165 ) |
16456 { | 16456 { |