Mercurial > mm7
comparison SaveLoad.cpp @ 847:e398541aee60
fixed party save position
author | Gloval |
---|---|
date | Sat, 30 Mar 2013 19:36:05 +0400 |
parents | bebc19f3d2af |
children | 08fd1436ef35 |
comparison
equal
deleted
inserted
replaced
846:39503542470c | 847:e398541aee60 |
---|---|
228 | 228 |
229 | 229 |
230 //----- (0045F469) -------------------------------------------------------- | 230 //----- (0045F469) -------------------------------------------------------- |
231 void SaveGame( bool IsAutoSAve, bool NotSaveWorld ) | 231 void SaveGame( bool IsAutoSAve, bool NotSaveWorld ) |
232 { | 232 { |
233 int result; // eax@1 | |
234 unsigned short *pScreenshot; // edi@5 | 233 unsigned short *pScreenshot; // edi@5 |
235 int text_pos; // eax@6 | 234 int text_pos; // eax@6 |
236 int v5; // eax@6 | 235 FILE *pLLoidFile; // edi@24 |
237 int v6; // eax@6 | |
238 const char *v7; // edi@8 | |
239 FILE *v8; // edi@24 | |
240 char* compressed_buf; // edi@30 | 236 char* compressed_buf; // edi@30 |
241 void *v10; // esi@31 | |
242 void *v11; // esi@31 | |
243 void *v12; // esi@37 | |
244 void *v13; // esi@37 | |
245 void *v14; // esi@37 | |
246 void *v15; // esi@37 | |
247 void *v16; // esi@37 | |
248 int v17; // esi@37 | |
249 unsigned int v18; // ecx@38 | |
250 unsigned int v19; // esi@39 | |
251 BSPModel *v20; // edx@39 | |
252 char *data_write_pos; // esi@41 | 237 char *data_write_pos; // esi@41 |
253 void *v22; // esi@41 | 238 CHAR Buffer[128]; // [sp+Ch] [bp-264h]@59 |
254 BSPModel *v23; // eax@42 | |
255 signed int v24; // edi@42 | |
256 unsigned __int8 v25; // zf@43 | |
257 unsigned __int8 v26; // sf@43 | |
258 signed int v27; // edi@47 | |
259 void *v28; // esi@50 | |
260 void *v29; // esi@50 | |
261 void *v30; // esi@50 | |
262 void *v31; // esi@50 | |
263 int v32; // esi@51 | |
264 int v33; // eax@51 | |
265 DWORD v34; // eax@59 | |
266 //std::string v35; // [sp-18h] [bp-288h]@8 | |
267 const char *v36; // [sp-10h] [bp-280h]@6 | |
268 const char *v37; // [sp-Ch] [bp-27Ch]@6 | |
269 unsigned int *v38; // [sp-8h] [bp-278h]@8 | |
270 CHAR Buffer; // [sp+Ch] [bp-264h]@59 | |
271 char Dir[255]; // [sp+8Ch] [bp-1E4h]@51 | 239 char Dir[255]; // [sp+8Ch] [bp-1E4h]@51 |
272 char Drive[255]; // [sp+ACh] [bp-1C4h]@51 | 240 char Drive[255]; // [sp+ACh] [bp-1C4h]@51 |
273 SavegameHeader save_header; // [sp+CCh] [bp-1A4h]@10 | 241 SavegameHeader save_header; // [sp+CCh] [bp-1A4h]@10 |
274 //int v43; // [sp+CCh] [bp-1A4h]@10 | |
275 //char Dest[20]; // [sp+E0h] [bp-190h]@10 | |
276 //unsigned __int64 pTimePlayed; // [sp+F4h] [bp-17Ch]@10 | |
277 char Filename[255]; // [sp+130h] [bp-140h]@51 | 242 char Filename[255]; // [sp+130h] [bp-140h]@51 |
278 char Ext[255]; // [sp+150h] [bp-120h]@51 | 243 char Ext[255]; // [sp+150h] [bp-120h]@51 |
279 char v48; // [sp+151h] [bp-11Fh]@51 | |
280 char Source[32]; // [sp+170h] [bp-100h]@51 | 244 char Source[32]; // [sp+170h] [bp-100h]@51 |
281 char Str[120]; // [sp+190h] [bp-E0h]@8 | 245 char work_string[120]; // [sp+190h] [bp-E0h]@8 |
282 int v51; // [sp+208h] [bp-68h]@2 | 246 int pPositionY; // [sp+208h] [bp-68h]@2 |
283 int pPositionX; // [sp+20Ch] [bp-64h]@2 | 247 int pPositionX; // [sp+20Ch] [bp-64h]@2 |
284 int v53; // [sp+210h] [bp-60h]@2 | 248 int sPRotationY; // [sp+210h] [bp-60h]@2 |
285 int v54; // [sp+214h] [bp-5Ch]@2 | 249 int sPRotationX; // [sp+214h] [bp-5Ch]@2 |
286 ODMHeader odm_data; // [sp+218h] [bp-58h]@30 | 250 ODMHeader odm_data; // [sp+218h] [bp-58h]@30 |
287 char v56; // [sp+21Ch] [bp-54h]@30 | 251 int res; // [sp+224h] [bp-4Ch]@30 |
288 char v57; // [sp+21Dh] [bp-53h]@30 | 252 int pPositionZ; // [sp+228h] [bp-48h]@2 |
289 char v58; // [sp+21Eh] [bp-52h]@30 | |
290 char v59; // [sp+21Fh] [bp-51h]@30 | |
291 int v60; // [sp+220h] [bp-50h]@30 | |
292 int v61; // [sp+224h] [bp-4Ch]@30 | |
293 int v62; // [sp+228h] [bp-48h]@2 | |
294 LOD::Directory pLodDirectory; // [sp+22Ch] [bp-44h]@2 | 253 LOD::Directory pLodDirectory; // [sp+22Ch] [bp-44h]@2 |
295 size_t Size; // [sp+250h] [bp-20h]@26 | 254 size_t Size; // [sp+250h] [bp-20h]@26 |
296 __int16 *v66; // [sp+254h] [bp-1Ch]@1 | |
297 char *uncompressed_buff; // [sp+258h] [bp-18h]@2 | 255 char *uncompressed_buff; // [sp+258h] [bp-18h]@2 |
298 __int16 *v68; // [sp+25Ch] [bp-14h]@32 | |
299 unsigned int compressed_block_size; // [sp+260h] [bp-10h]@23 | 256 unsigned int compressed_block_size; // [sp+260h] [bp-10h]@23 |
300 int v70; // [sp+264h] [bp-Ch]@22 | 257 |
301 std::string *v71; // [sp+268h] [bp-8h]@8 | |
302 int a3; // [sp+26Fh] [bp-1h]@8 | |
303 | |
304 //v66 = a2; | 258 //v66 = a2; |
305 strcpy(byte_6BE3B0, pCurrentMapName); | 259 strcpy(byte_6BE3B0, pCurrentMapName); |
306 if (!_strcmpi(pCurrentMapName, "d05.blv")) // arena | 260 if (!_strcmpi(pCurrentMapName, "d05.blv")) // arena |
307 return; | 261 return; |
308 | 262 |
309 uncompressed_buff = (char*)malloc(1000000); | 263 uncompressed_buff = (char*)malloc(1000000); |
310 pLodDirectory.Reset(); | 264 pLodDirectory.Reset(); |
311 pPositionX = pParty->vPosition.x; | 265 pPositionX = pParty->vPosition.x; |
312 v51 = pParty->vPosition.y; | 266 pPositionY = pParty->vPosition.y; |
313 v62 = pParty->vPosition.z; | 267 pPositionZ = pParty->vPosition.z; |
314 v53 = pParty->sRotationY; | 268 sPRotationY = pParty->sRotationY; |
315 v54 = pParty->sRotationX; | 269 sPRotationX = pParty->sRotationX; |
316 pParty->vPosition.x = pParty->vPrevPosition.x; | 270 pParty->vPosition.x = pParty->vPrevPosition.x; |
317 pParty->vPosition.y = pParty->vPrevPosition.z; | 271 pParty->vPosition.z = pParty->vPrevPosition.z; |
318 pParty->vPosition.z = pParty->vPrevPosition.y; | 272 pParty->vPosition.y = pParty->vPrevPosition.y; |
319 pParty->uFallStartY = pParty->vPrevPosition.y; | 273 |
274 pParty->uFallStartY = pParty->vPrevPosition.z; | |
275 | |
320 pParty->sRotationY = pParty->sPrevRotationY; | 276 pParty->sRotationY = pParty->sPrevRotationY; |
321 pParty->sRotationX = pParty->sPrevRotationX; | 277 pParty->sRotationX = pParty->sPrevRotationX; |
322 if (uCurrentlyLoadedLevelType == LEVEL_Indoor) | 278 if (uCurrentlyLoadedLevelType == LEVEL_Indoor) |
323 pIndoor->stru1.uLastVisitDay = pParty->uTimePlayed; | 279 pIndoor->stru1.uLastVisitDay = pParty->uTimePlayed; |
324 else | 280 else |
340 pRenderer->Present(); | 296 pRenderer->Present(); |
341 } | 297 } |
342 | 298 |
343 if (pNew_LOD->Write(&pLodDirectory, uncompressed_buff, 0)) | 299 if (pNew_LOD->Write(&pLodDirectory, uncompressed_buff, 0)) |
344 { | 300 { |
345 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 200); //Сохраненная игра повреждена! Code=%d | 301 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 200); //Сохраненная игра повреждена! Code=%d |
346 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:773", 0); | 302 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:773", 0); |
347 } | 303 } |
348 | 304 |
349 assert(sizeof(SavegameHeader) == 100); | 305 assert(sizeof(SavegameHeader) == 100); |
350 memset(save_header.pName, 0, 20); | 306 memset(save_header.pName, 0, 20); |
351 memset(save_header.pLocationName, 0, 20); | 307 memset(save_header.pLocationName, 0, 20); |
354 save_header.uWordTime = pParty->uTimePlayed; | 310 save_header.uWordTime = pParty->uTimePlayed; |
355 strcpy(pLodDirectory.pFilename, "header.bin"); | 311 strcpy(pLodDirectory.pFilename, "header.bin"); |
356 pLodDirectory.uDataSize = sizeof(SavegameHeader); | 312 pLodDirectory.uDataSize = sizeof(SavegameHeader); |
357 if (pNew_LOD->Write(&pLodDirectory, &save_header, 0)) | 313 if (pNew_LOD->Write(&pLodDirectory, &save_header, 0)) |
358 { | 314 { |
359 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 201); | 315 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 201); |
360 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:784", 0); | 316 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:784", 0); |
361 } | 317 } |
362 strcpy(pLodDirectory.pFilename, "party.bin"); | 318 strcpy(pLodDirectory.pFilename, "party.bin"); |
363 pLodDirectory.uDataSize = sizeof(Party); //90680; | 319 pLodDirectory.uDataSize = sizeof(Party); //90680; |
364 if ( pNew_LOD->Write(&pLodDirectory, pParty, 0) ) | 320 if ( pNew_LOD->Write(&pLodDirectory, pParty, 0) ) |
365 { | 321 { |
366 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 202); | 322 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 202); |
367 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:793", 0); | 323 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:793", 0); |
368 } | 324 } |
369 strcpy(pLodDirectory.pFilename, "clock.bin"); | 325 strcpy(pLodDirectory.pFilename, "clock.bin"); |
370 pLodDirectory.uDataSize =sizeof(Timer);// 40; | 326 pLodDirectory.uDataSize =sizeof(Timer);// 40; |
371 if ( pNew_LOD->Write(&pLodDirectory, pEventTimer, 0) ) | 327 if ( pNew_LOD->Write(&pLodDirectory, pEventTimer, 0) ) |
372 { | 328 { |
373 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 203); | 329 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 203); |
374 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:802", 0); | 330 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:802", 0); |
375 } | 331 } |
376 strcpy(pLodDirectory.pFilename, "overlay.bin"); | 332 strcpy(pLodDirectory.pFilename, "overlay.bin"); |
377 pLodDirectory.uDataSize =sizeof(OtherOverlayList);// 1008; | 333 pLodDirectory.uDataSize =sizeof(OtherOverlayList);// 1008; |
378 if ( pNew_LOD->Write(&pLodDirectory, pOtherOverlayList, 0) ) | 334 if ( pNew_LOD->Write(&pLodDirectory, pOtherOverlayList, 0) ) |
379 { | 335 { |
380 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 204); | 336 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 204); |
381 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:811", 0); | 337 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:811", 0); |
382 } | 338 } |
383 strcpy(pLodDirectory.pFilename, "npcdata.bin"); | 339 strcpy(pLodDirectory.pFilename, "npcdata.bin"); |
384 pLodDirectory.uDataSize = 501 * sizeof(NPCData); | 340 pLodDirectory.uDataSize = 501 * sizeof(NPCData); |
385 assert(pLodDirectory.uDataSize == 38076); | 341 assert(pLodDirectory.uDataSize == 38076); |
386 if ( pNew_LOD->Write(&pLodDirectory, pNPCStats->pNewNPCData, 0) ) | 342 if ( pNew_LOD->Write(&pLodDirectory, pNPCStats->pNewNPCData, 0) ) |
387 { | 343 { |
388 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 205); | 344 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 205); |
389 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:820", 0); | 345 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:820", 0); |
390 } | 346 } |
391 strcpy(pLodDirectory.pFilename, "npcgroup.bin"); | 347 strcpy(pLodDirectory.pFilename, "npcgroup.bin"); |
392 pLodDirectory.uDataSize = 102; | 348 pLodDirectory.uDataSize = 102; |
393 if ( pNew_LOD->Write(&pLodDirectory, pNPCStats->pGroups_copy, 0) ) | 349 if ( pNew_LOD->Write(&pLodDirectory, pNPCStats->pGroups_copy, 0) ) |
394 { | 350 { |
395 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 206); | 351 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 206); |
396 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:829", 0); | 352 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:829", 0); |
397 } | 353 } |
398 for (int i = 1; i <= 4; ++i) // 4 - players | 354 for (int i = 1; i <= 4; ++i) // 4 - players |
399 { | 355 { |
400 for (int j = 1; j <= 5; ++j) // 5 - images | 356 for (int j = 1; j <= 5; ++j) // 5 - images |
401 { | 357 { |
402 sprintf(Str, "data\\lloyd%d%d.pcx", i, j); | 358 sprintf(work_string, "data\\lloyd%d%d.pcx", i, j); |
403 v8 = fopen(Str, "rb"); | 359 pLLoidFile = fopen(work_string, "rb"); |
404 if ( v8 ) | 360 if ( pLLoidFile ) |
405 { | 361 { |
406 __debugbreak(); | 362 __debugbreak(); |
407 sprintf(Str, "lloyd%d%d.pcx", i, j); | 363 sprintf(work_string, "lloyd%d%d.pcx", i, j); |
408 fseek(v8, 0, 2); | 364 fseek(pLLoidFile, 0, SEEK_END); |
409 pLodDirectory.uDataSize = ftell(v8); | 365 pLodDirectory.uDataSize = ftell(pLLoidFile); |
410 rewind(v8); | 366 rewind(pLLoidFile); |
411 fread(uncompressed_buff, pLodDirectory.uDataSize, 1, v8); | 367 fread(uncompressed_buff, pLodDirectory.uDataSize, 1, pLLoidFile); |
412 strcpy((char *)&pLodDirectory, Str); | 368 strcpy(pLodDirectory.pFilename, work_string); |
413 fclose(v8); | 369 fclose(pLLoidFile); |
414 remove(Str); | 370 remove(work_string); |
415 if ( pNew_LOD->Write(&pLodDirectory, uncompressed_buff, 0) ) | 371 if ( pNew_LOD->Write(&pLodDirectory, uncompressed_buff, 0) ) |
416 { | 372 { |
417 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 207); | 373 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 207); |
418 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:857", 0); | 374 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:857", 0); |
419 Size = 5080748; | 375 Size = 5080748; |
420 } | 376 } |
421 } | 377 } |
422 } | 378 } |
423 } | 379 } |
465 data_write_pos += 4; | 421 data_write_pos += 4; |
466 memcpy(data_write_pos, pSpriteObjects, 112 * uNumSpriteObjects); | 422 memcpy(data_write_pos, pSpriteObjects, 112 * uNumSpriteObjects); |
467 data_write_pos += 112 * uNumSpriteObjects; | 423 data_write_pos += 112 * uNumSpriteObjects; |
468 memcpy(data_write_pos, &uNumChests, 4); | 424 memcpy(data_write_pos, &uNumChests, 4); |
469 data_write_pos += 4; | 425 data_write_pos += 4; |
470 memcpy(data_write_pos, pChests, 5324 * uNumChests); | 426 memcpy(data_write_pos, pChests, sizeof(Chest)*uNumChests);//5324 * |
471 data_write_pos += 5324 * uNumChests; | 427 data_write_pos += sizeof(Chest)* uNumChests; |
472 memcpy(data_write_pos, pIndoor->pDoors, 0x3E80); | 428 memcpy(data_write_pos, pIndoor->pDoors, 0x3E80); |
473 data_write_pos += 16000; | 429 data_write_pos += 16000; |
474 memcpy(data_write_pos, pIndoor->ptr_0002B4_doors_ddata, pIndoor->blv.uDoors_ddata_Size); | 430 memcpy(data_write_pos, pIndoor->ptr_0002B4_doors_ddata, pIndoor->blv.uDoors_ddata_Size); |
475 data_write_pos += pIndoor->blv.uDoors_ddata_Size; | 431 data_write_pos += pIndoor->blv.uDoors_ddata_Size; |
476 memcpy(data_write_pos, &stru_5E4C90, 0xC8); | 432 memcpy(data_write_pos, &stru_5E4C90, 0xC8); |
514 data_write_pos += 4; | 470 data_write_pos += 4; |
515 memcpy(data_write_pos, pSpriteObjects, 112 * uNumSpriteObjects); | 471 memcpy(data_write_pos, pSpriteObjects, 112 * uNumSpriteObjects); |
516 data_write_pos += 112 * uNumSpriteObjects; | 472 data_write_pos += 112 * uNumSpriteObjects; |
517 memcpy(data_write_pos, &uNumChests, 4); | 473 memcpy(data_write_pos, &uNumChests, 4); |
518 data_write_pos += 4; | 474 data_write_pos += 4; |
519 memcpy(data_write_pos, pChests, 5324 * uNumChests); | 475 memcpy(data_write_pos, pChests, sizeof(Chest)* uNumChests); |
520 data_write_pos += 5324 * uNumChests; | 476 data_write_pos += sizeof(Chest)* uNumChests; |
521 memcpy(data_write_pos, &stru_5E4C90, 0xC8); | 477 memcpy(data_write_pos, &stru_5E4C90, 0xC8); |
522 data_write_pos += 200; | 478 data_write_pos += 200; |
523 memcpy(data_write_pos, &pOutdoor->loc_time, 0x38); | 479 memcpy(data_write_pos, &pOutdoor->loc_time, 0x38); |
524 data_write_pos += 56; | 480 data_write_pos += 56; |
525 } | 481 } |
526 strcpy(Source, pCurrentMapName); | 482 strcpy(Source, pCurrentMapName); |
527 _splitpath(Source, Drive, Dir, Filename, Ext); | 483 _splitpath(Source, Drive, Dir, Filename, Ext); |
528 v48 = 100; | 484 |
529 Size = (int)data_write_pos - (int)uncompressed_buff; | 485 Size = (int)data_write_pos - (int)uncompressed_buff; |
530 compressed_block_size = 999984; | 486 compressed_block_size = 999984; |
531 LOBYTE(v33) = zlib::MemZip((char *)compressed_buf + 16, (unsigned int *)&compressed_block_size, uncompressed_buff,Size); | 487 res = zlib::MemZip((char *)compressed_buf + 16, (unsigned int *)&compressed_block_size, uncompressed_buff,Size); |
532 if ( v33 || (signed int)compressed_block_size > (signed int)Size ) | 488 if (res || (signed int)compressed_block_size > (signed int)Size ) |
533 { | 489 { |
534 memcpy((void *)(compressed_buf + 16), uncompressed_buff, Size); | 490 memcpy((void *)(compressed_buf + 16), uncompressed_buff, Size); |
535 compressed_block_size = Size; | 491 compressed_block_size = Size; |
536 } | 492 } |
537 compressed_block_size += 16; | 493 compressed_block_size += 16; |
538 memcpy(&((ODMHeader *)compressed_buf)->uCompressedSize, &compressed_block_size, 4); | 494 memcpy(&((ODMHeader *)compressed_buf)->uCompressedSize, &compressed_block_size, 4); |
539 memcpy(&((ODMHeader *)compressed_buf)->uDecompressedSize, &Size, 4); | 495 memcpy(&((ODMHeader *)compressed_buf)->uDecompressedSize, &Size, 4); |
540 sprintf(Source, "%s%s", &Filename, &Ext); | 496 sprintf(Source, "%s%s", &Filename, &Ext); |
541 strcpy((char *)&pLodDirectory, Source); | 497 strcpy(pLodDirectory.pFilename, Source); |
542 pLodDirectory.uDataSize = compressed_block_size; | 498 pLodDirectory.uDataSize = compressed_block_size; |
543 if ( pNew_LOD->Write(&pLodDirectory, (const void *)compressed_buf, 0) ) | 499 if ( pNew_LOD->Write(&pLodDirectory, (const void *)compressed_buf, 0) ) |
544 { | 500 { |
545 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 208); | 501 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 208); |
546 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:1071", 0); | 502 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:1071", 0); |
547 } | 503 } |
548 free((void *)compressed_buf); | 504 free((void *)compressed_buf); |
549 } | 505 } |
550 free(uncompressed_buff); | 506 free(uncompressed_buff); |
551 if ( IsAutoSAve ) | 507 if ( IsAutoSAve ) |
552 { | 508 { |
553 if ( !CopyFileA("data\\new.lod", "saves\\autosave.mm7", 0) ) | 509 if ( !CopyFileA("data\\new.lod", "saves\\autosave.mm7", 0) ) |
554 { | 510 { |
555 v34 = GetLastError(); | 511 FormatMessageA(0x1000, 0, GetLastError(), 0x400, Buffer, 0x80, 0); |
556 FormatMessageA(0x1000, 0, v34, 0x400, &Buffer, 0x80, 0); | 512 sprintf(work_string, pGlobalTXT_LocalizationStrings[612], 300); |
557 sprintf(Str, pGlobalTXT_LocalizationStrings[612], 300); | 513 MessageBoxA(nullptr, work_string, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:1097", 0); |
558 MessageBoxA(nullptr, Str, "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\LoadSave.cpp:1097", 0); | |
559 } | 514 } |
560 } | 515 } |
561 pParty->vPosition.x = pPositionX; | 516 pParty->vPosition.x = pPositionX; |
562 pParty->vPosition.y = v51; | 517 pParty->vPosition.y = pPositionY; |
563 pParty->vPosition.z = v62; | 518 pParty->vPosition.z = pPositionZ; |
564 pParty->uFallStartY = v62; | 519 pParty->uFallStartY = pPositionZ; |
565 pParty->sRotationY = v53; | 520 pParty->sRotationY = sPRotationY; |
566 pParty->sRotationX = v54; | 521 pParty->sRotationX = sPRotationX; |
567 } | 522 } |
568 | 523 |
569 | 524 |
570 //----- (00460078) -------------------------------------------------------- | 525 //----- (00460078) -------------------------------------------------------- |
571 void __fastcall DoSavegame(unsigned int uSlot) | 526 void __fastcall DoSavegame(unsigned int uSlot) |