|
@@ -393,7 +393,7 @@ int TombRaider::checkMime(char *filename) {
|
393
|
393
|
}
|
394
|
394
|
|
395
|
395
|
|
396
|
|
-int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
|
396
|
+int TombRaider::Load(char *filename)
|
397
|
397
|
{
|
398
|
398
|
FILE *f;
|
399
|
399
|
int i, j, l;
|
|
@@ -413,9 +413,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
413
|
413
|
}
|
414
|
414
|
|
415
|
415
|
|
416
|
|
- if (percent)
|
417
|
|
- (*percent)(1, obj);
|
418
|
|
-
|
419
|
416
|
mReset = false;
|
420
|
417
|
|
421
|
418
|
Fread(&mPakVersion, sizeof(mPakVersion), 1, f);
|
|
@@ -451,7 +448,7 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
451
|
448
|
{
|
452
|
449
|
printDebug("Load", "This is really a TR5 pak");
|
453
|
450
|
mEngineVersion = TR_VERSION_5;
|
454
|
|
- return loadTR5(f, percent, obj);
|
|
451
|
+ return loadTR5(f);
|
455
|
452
|
}
|
456
|
453
|
|
457
|
454
|
break;
|
|
@@ -459,9 +456,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
459
|
456
|
mEngineVersion = TR_VERSION_UNKNOWN;
|
460
|
457
|
}
|
461
|
458
|
|
462
|
|
- if (percent)
|
463
|
|
- (*percent)(5, obj);
|
464
|
|
-
|
465
|
459
|
printDebug("Load", "mEngineVersion = 0x%x", mPakVersion);
|
466
|
460
|
|
467
|
461
|
if (mEngineVersion == TR_VERSION_UNKNOWN)
|
|
@@ -509,9 +503,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
509
|
503
|
sz);
|
510
|
504
|
usz = foo;
|
511
|
505
|
|
512
|
|
- if (percent)
|
513
|
|
- (*percent)(6, obj);
|
514
|
|
-
|
515
|
506
|
printDebug("LoadTR4", "textile decompress [%s]",
|
516
|
507
|
(zerr == Z_OK) ? "OK" : "ERROR");
|
517
|
508
|
|
|
@@ -559,9 +550,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
559
|
550
|
sz);
|
560
|
551
|
usz = foo;
|
561
|
552
|
|
562
|
|
- if (percent)
|
563
|
|
- (*percent)(7, obj);
|
564
|
|
-
|
565
|
553
|
// printDebug("Load", "TR4 textile decompress [%s]",
|
566
|
554
|
// (zerr == Z_OK) ? "OK" : "ERROR");
|
567
|
555
|
|
|
@@ -642,9 +630,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
642
|
630
|
delete [] compressed_data;
|
643
|
631
|
}
|
644
|
632
|
|
645
|
|
- if (percent)
|
646
|
|
- (*percent)(9, obj);
|
647
|
|
-
|
648
|
633
|
// Read the sizes of the level data
|
649
|
634
|
Fread(&usz, sizeof(usz), 1, f);
|
650
|
635
|
Fread(&sz, sizeof(sz), 1, f);
|
|
@@ -721,9 +706,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
721
|
706
|
}
|
722
|
707
|
}
|
723
|
708
|
|
724
|
|
- if (percent)
|
725
|
|
- (*percent)(10, obj);
|
726
|
|
-
|
727
|
709
|
/* 32-bit unknown - seems to always be 0 */
|
728
|
710
|
Fread(&_unknown_t, sizeof(_unknown_t), 1, f);
|
729
|
711
|
printDebug("Load", "_unknown_t = 0x%x", _unknown_t);
|
|
@@ -739,11 +721,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
739
|
721
|
/* Extract room details */
|
740
|
722
|
for (i = 0; i < _num_rooms; ++i)
|
741
|
723
|
{
|
742
|
|
- if (percent)
|
743
|
|
- {
|
744
|
|
- (*percent)(11 + (int)(((float)i/(float)_num_rooms)*70.0), obj);
|
745
|
|
- }
|
746
|
|
-
|
747
|
724
|
/* Read RoomInfo */
|
748
|
725
|
//! \fixme endian check needed
|
749
|
726
|
Fread(&_rooms[i].info, sizeof(tr2_room_info_t), 1, f);
|
|
@@ -1204,9 +1181,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
1204
|
1181
|
//! \fixme endian
|
1205
|
1182
|
|
1206
|
1183
|
|
1207
|
|
- if (percent)
|
1208
|
|
- (*percent)(80, obj);
|
1209
|
|
-
|
1210
|
1184
|
printDebug("Load", "_num_state_changes = %u", _num_state_changes);
|
1211
|
1185
|
|
1212
|
1186
|
if (_num_state_changes > 0)
|
|
@@ -1355,9 +1329,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
1355
|
1329
|
}
|
1356
|
1330
|
|
1357
|
1331
|
|
1358
|
|
- if (percent)
|
1359
|
|
- (*percent)(90, obj);
|
1360
|
|
-
|
1361
|
1332
|
if (mEngineVersion == TR_VERSION_4)
|
1362
|
1333
|
{
|
1363
|
1334
|
unsigned char zzbuf[4];
|
|
@@ -1922,9 +1893,6 @@ int TombRaider::Load(char *filename, void (*percent)(int, void *), void *obj)
|
1922
|
1893
|
|
1923
|
1894
|
fclose(f);
|
1924
|
1895
|
|
1925
|
|
- if (percent)
|
1926
|
|
- (*percent)(100, obj);
|
1927
|
|
-
|
1928
|
1896
|
return 0;
|
1929
|
1897
|
}
|
1930
|
1898
|
|
|
@@ -5000,7 +4968,7 @@ unsigned char *TombRaider::getTexTile(int texture)
|
5000
|
4968
|
|
5001
|
4969
|
|
5002
|
4970
|
//! \fixme Move these data about to make full use in the class ;)
|
5003
|
|
-int TombRaider::loadTR5(FILE *f, void (*percent)(int, void *), void *obj)
|
|
4971
|
+int TombRaider::loadTR5(FILE *f)
|
5004
|
4972
|
{
|
5005
|
4973
|
unsigned int level_data_sz, riffOffset, seperator0;
|
5006
|
4974
|
unsigned int portalOffset, nextRoomOffset, thisRoomOffset;
|
|
@@ -5012,9 +4980,6 @@ int TombRaider::loadTR5(FILE *f, void (*percent)(int, void *), void *obj)
|
5012
|
4980
|
u_int8_t *meshData;
|
5013
|
4981
|
char check[32];
|
5014
|
4982
|
|
5015
|
|
- if (percent)
|
5016
|
|
- (*percent)(5, obj);
|
5017
|
|
-
|
5018
|
4983
|
printDebug("Load", "mEngineVersion = 0x%x", mPakVersion);
|
5019
|
4984
|
|
5020
|
4985
|
if (mEngineVersion != TR_VERSION_5)
|
|
@@ -5108,9 +5073,6 @@ int TombRaider::loadTR5(FILE *f, void (*percent)(int, void *), void *obj)
|
5108
|
5073
|
sz);
|
5109
|
5074
|
usz = foo;
|
5110
|
5075
|
|
5111
|
|
- if (percent)
|
5112
|
|
- (*percent)(7, obj);
|
5113
|
|
-
|
5114
|
5076
|
printDebug("LoadTR5", "textile decompress [%s]",
|
5115
|
5077
|
(zerr == Z_OK) ? "OK" : "ERROR");
|
5116
|
5078
|
|
|
@@ -5185,9 +5147,6 @@ int TombRaider::loadTR5(FILE *f, void (*percent)(int, void *), void *obj)
|
5185
|
5147
|
delete [] compressed_data;
|
5186
|
5148
|
}
|
5187
|
5149
|
|
5188
|
|
- if (percent)
|
5189
|
|
- (*percent)(10, obj);
|
5190
|
|
-
|
5191
|
5150
|
// Mongoose 2002.01.08, Michiel has discovered the
|
5192
|
5151
|
// first 4 bytes here are 2 bitu16 flags for Lara type and weather
|
5193
|
5152
|
u_int16_t laraType, weather;
|
|
@@ -5230,9 +5189,6 @@ int TombRaider::loadTR5(FILE *f, void (*percent)(int, void *), void *obj)
|
5230
|
5189
|
|
5231
|
5190
|
for (i = 0; i < _num_rooms; ++i)
|
5232
|
5191
|
{
|
5233
|
|
- if (percent)
|
5234
|
|
- (*percent)(11 + (int)(((float)i/(float)_num_rooms)*90.0), obj);
|
5235
|
|
-
|
5236
|
5192
|
thisRoomOffset = ftell(f);
|
5237
|
5193
|
|
5238
|
5194
|
Fread(&mRoomsTR5[i].checkXELA, 4, 1, f);
|