mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-14 18:15:28 -04:00
Split up Dat_Load into Dat_Load and Dat_LoadFormat2
This commit is contained in:
parent
ac0bf7ccdb
commit
cb48d63437
@ -66,8 +66,8 @@ Listed below are all of the options supported in options.txt
|
|||||||
### Audio options
|
### Audio options
|
||||||
|Name|Default|Description|
|
|Name|Default|Description|
|
||||||
|--|--|--|
|
|--|--|--|
|
||||||
`soundsvolume`|`0` for webclient<br>100 elsewhere|Volume of game sounds (e.g. break/walk sounds)<br>Volume must be between 0 and 100
|
`soundsvolume`|`0` for webclient<br>`100` elsewhere|Volume of game sounds (e.g. break/walk sounds)<br>Volume must be between 0 and 100
|
||||||
`musicvolume`|`0` for webclient<br>100 elsewhere|Volume of game background music<br>Volume must be between 0 and 100
|
`musicvolume`|`0` for webclient<br>`100` elsewhere|Volume of game background music<br>Volume must be between 0 and 100
|
||||||
`music-mindelay`|`120` (2 minutes)|Minimum delay before next music track is played <br>Delay must be between 0 and 3600
|
`music-mindelay`|`120` (2 minutes)|Minimum delay before next music track is played <br>Delay must be between 0 and 3600
|
||||||
`music-maxdelay`|`420` (7 minutes)|Maximum delay before next music track is played <br>Delay must be between 0 and 3600
|
`music-maxdelay`|`420` (7 minutes)|Maximum delay before next music track is played <br>Delay must be between 0 and 3600
|
||||||
|
|
||||||
@ -114,8 +114,10 @@ Listed below are all of the options supported in options.txt
|
|||||||
./Game.c: Game_AllowServerTextures = Options_GetBool(OPT_SERVER_TEXTURES, true);
|
./Game.c: Game_AllowServerTextures = Options_GetBool(OPT_SERVER_TEXTURES, true);
|
||||||
|
|
||||||
### Hacks options
|
### Hacks options
|
||||||
./Entity.c: hacks->Enabled = !Game_PureClassic && Options_GetBool(OPT_HACKS_ENABLED, true);
|
|Name|Default|Description|
|
||||||
./Entity.c: hacks->SpeedMultiplier = Options_GetFloat(OPT_SPEED_FACTOR, 0.1f, 50.0f, 10.0f);
|
|--|--|--|
|
||||||
|
`hacks-hacksenabled`|`true`|Whether hacks are enabled at all<br>Has no effect in 'classic only' game mode
|
||||||
|
`hacks-speedmultiplier`|`10.0`|Speed multiplier/factor when speedhacks are active<br>Multiplier must be between 0.1 and 50.0
|
||||||
./Entity.c: hacks->PushbackPlacing = Options_GetBool(OPT_PUSHBACK_PLACING, false);
|
./Entity.c: hacks->PushbackPlacing = Options_GetBool(OPT_PUSHBACK_PLACING, false);
|
||||||
./Entity.c: hacks->NoclipSlide = Options_GetBool(OPT_NOCLIP_SLIDE, false);
|
./Entity.c: hacks->NoclipSlide = Options_GetBool(OPT_NOCLIP_SLIDE, false);
|
||||||
./Entity.c: hacks->WOMStyleHacks = Options_GetBool(OPT_WOM_STYLE_HACKS, false);
|
./Entity.c: hacks->WOMStyleHacks = Options_GetBool(OPT_WOM_STYLE_HACKS, false);
|
||||||
|
@ -894,34 +894,25 @@ static int Dat_I32(struct JFieldDesc* field) {
|
|||||||
return field->Value.I32;
|
return field->Value.I32;
|
||||||
}
|
}
|
||||||
|
|
||||||
cc_result Dat_Load(struct Stream* stream) {
|
static cc_result Dat_LoadFormat2(struct Stream* stream) {
|
||||||
cc_uint8 header[10];
|
struct LocalPlayer* p = &LocalPlayer_Instance;
|
||||||
|
cc_uint8 header[5];
|
||||||
struct JClassDesc obj;
|
struct JClassDesc obj;
|
||||||
struct JFieldDesc* field;
|
struct JFieldDesc* field;
|
||||||
cc_string fieldName;
|
cc_string fieldName;
|
||||||
cc_result res;
|
cc_result res;
|
||||||
int i;
|
int i;
|
||||||
|
if ((res = Stream_Read(stream, header, sizeof(header)))) return res;
|
||||||
struct LocalPlayer* p = &LocalPlayer_Instance;
|
|
||||||
struct Stream compStream;
|
|
||||||
struct InflateState state;
|
|
||||||
Inflate_MakeStream2(&compStream, &state, stream);
|
|
||||||
|
|
||||||
if ((res = Map_SkipGZipHeader(stream))) return res;
|
|
||||||
if ((res = Stream_Read(&compStream, header, sizeof(header)))) return res;
|
|
||||||
/* .dat header */
|
|
||||||
if (Stream_GetU32_BE(&header[0]) != 0x271BB788) return DAT_ERR_IDENTIFIER;
|
|
||||||
if (header[4] != 0x02) return DAT_ERR_VERSION;
|
|
||||||
|
|
||||||
/* Java seralisation headers */
|
/* Java seralisation headers */
|
||||||
if (Stream_GetU16_BE(&header[5]) != 0xACED) return DAT_ERR_JIDENTIFIER;
|
if (Stream_GetU16_BE(&header[0]) != 0xACED) return DAT_ERR_JIDENTIFIER;
|
||||||
if (Stream_GetU16_BE(&header[7]) != 0x0005) return DAT_ERR_JVERSION;
|
if (Stream_GetU16_BE(&header[2]) != 0x0005) return DAT_ERR_JVERSION;
|
||||||
if (header[9] != TC_OBJECT) return DAT_ERR_ROOT_TYPE;
|
if (header[4] != TC_OBJECT) return DAT_ERR_ROOT_TYPE;
|
||||||
if ((res = Dat_ReadClassDesc(&compStream, &obj))) return res;
|
if ((res = Dat_ReadClassDesc(stream, &obj))) return res;
|
||||||
|
|
||||||
for (i = 0; i < obj.FieldsCount; i++) {
|
for (i = 0; i < obj.FieldsCount; i++) {
|
||||||
field = &obj.Fields[i];
|
field = &obj.Fields[i];
|
||||||
if ((res = Dat_ReadFieldData(&compStream, field))) return res;
|
if ((res = Dat_ReadFieldData(stream, field))) return res;
|
||||||
fieldName = String_FromRaw((char*)field->FieldName, JNAME_SIZE);
|
fieldName = String_FromRaw((char*)field->FieldName, JNAME_SIZE);
|
||||||
|
|
||||||
if (String_CaselessEqualsConst(&fieldName, "width")) {
|
if (String_CaselessEqualsConst(&fieldName, "width")) {
|
||||||
@ -945,6 +936,23 @@ cc_result Dat_Load(struct Stream* stream) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cc_result Dat_Load(struct Stream* stream) {
|
||||||
|
cc_uint8 header[5];
|
||||||
|
cc_result res;
|
||||||
|
|
||||||
|
struct Stream compStream;
|
||||||
|
struct InflateState state;
|
||||||
|
Inflate_MakeStream2(&compStream, &state, stream);
|
||||||
|
if ((res = Map_SkipGZipHeader(stream))) return res;
|
||||||
|
|
||||||
|
if ((res = Stream_Read(&compStream, header, sizeof(header)))) return res;
|
||||||
|
/* .dat header */
|
||||||
|
if (Stream_GetU32_BE(&header[0]) != 0x271BB788) return DAT_ERR_IDENTIFIER;
|
||||||
|
if (header[4] != 0x02) return DAT_ERR_VERSION;
|
||||||
|
|
||||||
|
return Dat_LoadFormat2(&compStream);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*########################################################################################################################*
|
/*########################################################################################################################*
|
||||||
*--------------------------------------------------ClassicWorld export----------------------------------------------------*
|
*--------------------------------------------------ClassicWorld export----------------------------------------------------*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user