2
0
mirror of https://github.com/rehlds/rehlds.git synced 2025-01-01 01:25:38 +03:00

Fixed loading of maps without world classname or with long list of wads

Removed rtti
Reduced MAX_HOOKS_IN_CHAIN value
This commit is contained in:
asmodai 2015-10-17 21:07:08 +03:00
parent ff305e86b6
commit 09f1f799a1
4 changed files with 28 additions and 3 deletions

View File

@ -134,7 +134,9 @@ void setupToolchain(NativeBinarySpec b) {
if (!rehldsFixes) {
cfg.compilerOptions.floatingPointModel = FloatingPointModel.PRECISE
cfg.compilerOptions.enhancedInstructionsSet = EnhancedInstructionsSet.DISABLED
}
} else {
cfg.compilerOptions.args '/Oi', '/GF', '/GR-'
}
if (swdsLib) {
cfg.linkerOptions.randomizedBaseAddress = false
cfg.linkerOptions.baseAddress = '0x4970000'
@ -154,7 +156,7 @@ void setupToolchain(NativeBinarySpec b) {
'_unlink': 'unlink',
'_vsnprintf': 'vsnprintf',
])
cfg.compilerOptions.args '-Qoption,cpp,--treat_func_as_string_literal_cpp'
cfg.compilerOptions.args '-Qoption,cpp,--treat_func_as_string_literal_cpp', '-fno-rtti'
cfg.projectLibpath(project, '/lib/linux32')
cfg.extraLibs 'rt', 'dl', 'm', 'steam_api'
}

View File

@ -424,6 +424,25 @@ bool SuckOutClassname(char *szInputStream, edict_t *pEdict)
szInputStream = COM_Parse(szInputStream);
}
#ifdef REHLDS_FIXES
if (pEdict == g_psv.edicts)
{
kvd.szClassName = NULL;
kvd.szKeyName = "classname";
kvd.szValue = "worldspawn";
kvd.fHandled = FALSE;
gEntityInterface.pfnKeyValue(pEdict, &kvd);
if (kvd.fHandled == FALSE)
{
Host_Error(__FUNCTION__ ": parse error");
}
return true;
}
#endif
// classname not found
return false;
}

View File

@ -29,7 +29,11 @@
#include "const.h"
#ifdef REHLDS_FIXES
#define COM_TOKEN_LEN 2048
#else
#define COM_TOKEN_LEN 1024
#endif
// Don't allow overflow
#define SIZEBUF_CHECK_OVERFLOW 0

View File

@ -28,7 +28,7 @@
#pragma once
#include "hookchains.h"
#define MAX_HOOKS_IN_CHAIN 63
#define MAX_HOOKS_IN_CHAIN 19
// Implementation for chains in modules
template<typename t_ret, typename ...t_args>