Merge branch 'master' into jgrpp-beta
# Conflicts: # src/cargopacket.h # src/lang/korean.txt # src/linkgraph/linkgraph.h # src/linkgraph/linkgraphjob.h # src/linkgraph/linkgraphschedule.h # src/network/network_admin.h # src/network/network_func.h # src/network/network_server.cpp # src/network/network_server.h # src/order_base.h # src/rail_cmd.cpp # src/saveload/company_sl.cpp # src/saveload/depot_sl.cpp # src/saveload/economy_sl.cpp # src/saveload/linkgraph_sl.cpp # src/saveload/map_sl.cpp # src/saveload/newgrf_sl.cpp # src/saveload/order_sl.cpp # src/saveload/saveload.cpp # src/saveload/saveload.h # src/saveload/signs_sl.cpp # src/saveload/station_sl.cpp # src/saveload/subsidy_sl.cpp # src/saveload/town_sl.cpp # src/saveload/vehicle_sl.cpp # src/script/api/script_object.cpp # src/settings.cpp # src/string.cpp # src/string_func.h # src/table/CMakeLists.txt # src/table/settings/settings.ini # src/viewport_sprite_sorter_sse4.cpp
This commit is contained in:
@@ -139,7 +139,7 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
NetworkAdminGameScript(json.c_str());
|
||||
NetworkAdminGameScript(json);
|
||||
|
||||
sq_pushinteger(vm, 1);
|
||||
return 1;
|
||||
|
@@ -260,7 +260,7 @@
|
||||
|
||||
/* static */ bool ScriptCompany::SetAutoRenewStatus(bool autorenew)
|
||||
{
|
||||
return ScriptObject::DoCommand(0, ::GetCompanySettingIndex("company.engine_renew"), autorenew ? 1 : 0, CMD_CHANGE_COMPANY_SETTING);
|
||||
return ScriptObject::DoCommand(0, 0, autorenew ? 1 : 0, CMD_CHANGE_COMPANY_SETTING, "company.engine_renew");
|
||||
}
|
||||
|
||||
/* static */ bool ScriptCompany::GetAutoRenewStatus(CompanyID company)
|
||||
@@ -273,7 +273,7 @@
|
||||
|
||||
/* static */ bool ScriptCompany::SetAutoRenewMonths(int16 months)
|
||||
{
|
||||
return ScriptObject::DoCommand(0, ::GetCompanySettingIndex("company.engine_renew_months"), months, CMD_CHANGE_COMPANY_SETTING);
|
||||
return ScriptObject::DoCommand(0, 0, months, CMD_CHANGE_COMPANY_SETTING, "company.engine_renew_months");
|
||||
}
|
||||
|
||||
/* static */ int16 ScriptCompany::GetAutoRenewMonths(CompanyID company)
|
||||
@@ -288,7 +288,7 @@
|
||||
{
|
||||
EnforcePrecondition(false, money >= 0);
|
||||
EnforcePrecondition(false, (int64)money <= UINT32_MAX);
|
||||
return ScriptObject::DoCommand(0, ::GetCompanySettingIndex("company.engine_renew_money"), money, CMD_CHANGE_COMPANY_SETTING);
|
||||
return ScriptObject::DoCommand(0, 0, money, CMD_CHANGE_COMPANY_SETTING, "company.engine_renew_money");
|
||||
}
|
||||
|
||||
/* static */ Money ScriptCompany::GetAutoRenewMoney(CompanyID company)
|
||||
|
@@ -118,23 +118,18 @@ bool ScriptEventCompanyAskMerger::AcceptMerger()
|
||||
return ScriptObject::DoCommand(0, this->owner, 0, CMD_BUY_COMPANY);
|
||||
}
|
||||
|
||||
ScriptEventAdminPort::ScriptEventAdminPort(const char *json) :
|
||||
ScriptEventAdminPort::ScriptEventAdminPort(const std::string &json) :
|
||||
ScriptEvent(ET_ADMIN_PORT),
|
||||
json(stredup(json))
|
||||
json(json)
|
||||
{
|
||||
}
|
||||
|
||||
ScriptEventAdminPort::~ScriptEventAdminPort()
|
||||
{
|
||||
free(this->json);
|
||||
}
|
||||
|
||||
#define SKIP_EMPTY(p) while (*(p) == ' ' || *(p) == '\n' || *(p) == '\r') (p)++;
|
||||
#define RETURN_ERROR(stack) { ScriptLog::Error("Received invalid JSON data from AdminPort."); if (stack != 0) sq_pop(vm, stack); return nullptr; }
|
||||
|
||||
SQInteger ScriptEventAdminPort::GetObject(HSQUIRRELVM vm)
|
||||
{
|
||||
char *p = this->json;
|
||||
const char *p = this->json.c_str();
|
||||
|
||||
if (this->ReadTable(vm, p) == nullptr) {
|
||||
sq_pushnull(vm);
|
||||
@@ -144,9 +139,9 @@ SQInteger ScriptEventAdminPort::GetObject(HSQUIRRELVM vm)
|
||||
return 1;
|
||||
}
|
||||
|
||||
char *ScriptEventAdminPort::ReadString(HSQUIRRELVM vm, char *p)
|
||||
const char *ScriptEventAdminPort::ReadString(HSQUIRRELVM vm, const char *p)
|
||||
{
|
||||
char *value = p;
|
||||
const char *value = p;
|
||||
|
||||
bool escape = false;
|
||||
for (;;) {
|
||||
@@ -168,14 +163,14 @@ char *ScriptEventAdminPort::ReadString(HSQUIRRELVM vm, char *p)
|
||||
p++;
|
||||
}
|
||||
|
||||
*p = '\0';
|
||||
sq_pushstring(vm, value, -1);
|
||||
*p++ = '"';
|
||||
size_t len = p - value;
|
||||
sq_pushstring(vm, value, len);
|
||||
p++; // Step past the end-of-string marker (")
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, char *p)
|
||||
const char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, const char *p)
|
||||
{
|
||||
sq_newtable(vm);
|
||||
|
||||
@@ -218,7 +213,7 @@ char *ScriptEventAdminPort::ReadTable(HSQUIRRELVM vm, char *p)
|
||||
return p;
|
||||
}
|
||||
|
||||
char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, char *p)
|
||||
const char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, const char *p)
|
||||
{
|
||||
SKIP_EMPTY(p);
|
||||
|
||||
@@ -257,7 +252,7 @@ char *ScriptEventAdminPort::ReadValue(HSQUIRRELVM vm, char *p)
|
||||
sq_newarray(vm, 0);
|
||||
|
||||
/* Empty array? */
|
||||
char *p2 = p + 1;
|
||||
const char *p2 = p + 1;
|
||||
SKIP_EMPTY(p2);
|
||||
if (*p2 == ']') {
|
||||
p = p2 + 1;
|
||||
|
@@ -837,8 +837,7 @@ public:
|
||||
/**
|
||||
* @param json The JSON string which got sent.
|
||||
*/
|
||||
ScriptEventAdminPort(const char *json);
|
||||
~ScriptEventAdminPort();
|
||||
ScriptEventAdminPort(const std::string &json);
|
||||
|
||||
/**
|
||||
* Convert an ScriptEvent to the real instance.
|
||||
@@ -853,28 +852,28 @@ public:
|
||||
SQInteger GetObject(HSQUIRRELVM vm);
|
||||
|
||||
private:
|
||||
char *json; ///< The JSON string.
|
||||
std::string json; ///< The JSON string.
|
||||
|
||||
/**
|
||||
* Read a table from a JSON string.
|
||||
* @param vm The VM used.
|
||||
* @param p The (part of the) JSON string reading.
|
||||
*/
|
||||
char *ReadTable(HSQUIRRELVM vm, char *p);
|
||||
const char *ReadTable(HSQUIRRELVM vm, const char *p);
|
||||
|
||||
/**
|
||||
* Read a value from a JSON string.
|
||||
* @param vm The VM used.
|
||||
* @param p The (part of the) JSON string reading.
|
||||
*/
|
||||
char *ReadValue(HSQUIRRELVM vm, char *p);
|
||||
const char *ReadValue(HSQUIRRELVM vm, const char *p);
|
||||
|
||||
/**
|
||||
* Read a string from a JSON string.
|
||||
* @param vm The VM used.
|
||||
* @param p The (part of the) JSON string reading.
|
||||
*/
|
||||
char *ReadString(HSQUIRRELVM vm, char *p);
|
||||
const char *ReadString(HSQUIRRELVM vm, const char *p);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -26,9 +26,7 @@
|
||||
if (!IsValid(setting)) return -1;
|
||||
|
||||
const SettingDesc *sd = GetSettingFromName(setting);
|
||||
|
||||
void *ptr = GetVariableAddress(&_settings_game, &sd->save);
|
||||
return (int32)ReadValue(ptr, sd->save.conv);
|
||||
return sd->AsIntSetting()->Read(&_settings_game);
|
||||
}
|
||||
|
||||
/* static */ bool ScriptGameSettings::SetValue(const char *setting, int value)
|
||||
@@ -39,7 +37,7 @@
|
||||
|
||||
if ((sd->save.conv & SLF_NO_NETWORK_SYNC) != 0) return false;
|
||||
|
||||
return ScriptObject::DoCommand(0, GetSettingIndex(sd), value, CMD_CHANGE_SETTING);
|
||||
return ScriptObject::DoCommand(0, 0, value, CMD_CHANGE_SETTING, sd->name);
|
||||
}
|
||||
|
||||
/* static */ bool ScriptGameSettings::IsDisabledVehicleType(ScriptVehicle::VehicleType vehicle_type)
|
||||
|
@@ -118,7 +118,7 @@
|
||||
{
|
||||
if (HasWagonRemoval() == enable_removal) return true;
|
||||
|
||||
return ScriptObject::DoCommand(0, ::GetCompanySettingIndex("company.renew_keep_length"), enable_removal ? 1 : 0, CMD_CHANGE_COMPANY_SETTING);
|
||||
return ScriptObject::DoCommand(0, 0, enable_removal ? 1 : 0, CMD_CHANGE_COMPANY_SETTING, "company.renew_keep_length");
|
||||
}
|
||||
|
||||
/* static */ bool ScriptGroup::HasWagonRemoval()
|
||||
|
@@ -287,7 +287,7 @@ ScriptObject::ActiveInstance::~ActiveInstance()
|
||||
{
|
||||
char buffer[64];
|
||||
::GetString(buffer, string, lastof(buffer));
|
||||
::str_validate(buffer, lastof(buffer), SVS_NONE);
|
||||
::StrMakeValidInPlace(buffer, lastof(buffer), SVS_NONE);
|
||||
return ::stredup(buffer);
|
||||
}
|
||||
|
||||
@@ -316,7 +316,7 @@ ScriptObject::ActiveInstance::~ActiveInstance()
|
||||
if (binary_length == 0 && !StrEmpty(text) && (GetCommandFlags(cmd) & CMD_STR_CTRL) == 0) {
|
||||
/* The string must be valid, i.e. not contain special codes. Since some
|
||||
* can be made with GSText, make sure the control codes are removed. */
|
||||
::str_validate(const_cast<char *>(text), text + strlen(text), SVS_NONE);
|
||||
::StrMakeValidInPlace(const_cast<char *>(text), text + strlen(text), SVS_NONE);
|
||||
}
|
||||
|
||||
/* Set the default callback to return a true/false result of the DoCommand */
|
||||
|
@@ -82,7 +82,7 @@ SQInteger ScriptText::_SetParam(int parameter, HSQUIRRELVM vm)
|
||||
sq_getstring(vm, -1, &value);
|
||||
|
||||
this->params[parameter] = stredup(value);
|
||||
ValidateString(this->params[parameter]);
|
||||
StrMakeValidInPlace(this->params[parameter]);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ SQInteger ScriptText::_set(HSQUIRRELVM vm)
|
||||
if (sq_gettype(vm, 2) == OT_STRING) {
|
||||
const SQChar *key_string;
|
||||
sq_getstring(vm, 2, &key_string);
|
||||
ValidateString(key_string);
|
||||
StrMakeValidInPlace(const_cast<char *>(key_string));
|
||||
|
||||
if (strncmp(key_string, "param_", 6) != 0 || strlen(key_string) > 8) return SQ_ERROR;
|
||||
k = atoi(key_string + 6);
|
||||
|
Reference in New Issue
Block a user