NSIO: Add SaveEntity/ReadEntity methods to help Save/Restore operations
This commit is contained in:
parent
6d8273331a
commit
dd86e5a583
9 changed files with 76 additions and 59 deletions
|
@ -56,7 +56,7 @@ class func_healthcharger:NSRenderableEntity
|
|||
void
|
||||
func_healthcharger::Save(float handle)
|
||||
{
|
||||
SaveFloat(handle, "user", num_for_edict(m_eUser));
|
||||
SaveEntity(handle, "user", m_eUser);
|
||||
SaveFloat(handle, "delay", m_flDelay);
|
||||
SaveFloat(handle, "check", m_flCheck);
|
||||
SaveString(handle, "snd_first", m_strSndFirst);
|
||||
|
@ -70,7 +70,7 @@ func_healthcharger::Restore(string strKey, string strValue)
|
|||
{
|
||||
switch (strKey) {
|
||||
case "user":
|
||||
m_eUser = edict_num(ReadFloat(strValue));
|
||||
m_eUser = ReadEntity(strValue);
|
||||
break;
|
||||
case "delay":
|
||||
m_flDelay = ReadFloat(strValue);
|
||||
|
|
|
@ -49,8 +49,8 @@ class func_pushable:func_breakable
|
|||
void
|
||||
func_pushable::Save(float handle)
|
||||
{
|
||||
SaveFloat(handle, "puller", num_for_edict(m_pPuller));
|
||||
SaveFloat(handle, "collbox", num_for_edict(m_eCollBox));
|
||||
SaveEntity(handle, "puller", m_pPuller);
|
||||
SaveEntity(handle, "collbox", m_eCollBox);
|
||||
super::Save(handle);
|
||||
}
|
||||
|
||||
|
@ -59,10 +59,10 @@ func_pushable::Restore(string strKey, string strValue)
|
|||
{
|
||||
switch (strKey) {
|
||||
case "puller":
|
||||
m_pPuller = edict_num(ReadFloat(strValue));
|
||||
m_pPuller = ReadEntity(strValue);
|
||||
break;
|
||||
case "collbox":
|
||||
m_eCollBox = edict_num(ReadFloat(strValue));
|
||||
m_eCollBox = ReadEntity(strValue);
|
||||
break;
|
||||
default:
|
||||
super::Restore(strKey, strValue);
|
||||
|
|
|
@ -56,7 +56,7 @@ class func_recharge:NSRenderableEntity
|
|||
void
|
||||
func_recharge::Save(float handle)
|
||||
{
|
||||
SaveFloat(handle, "user", num_for_edict(m_eUser));
|
||||
SaveEntity(handle, "user", m_eUser);
|
||||
SaveFloat(handle, "delay", m_flDelay);
|
||||
SaveFloat(handle, "check", m_flCheck);
|
||||
SaveString(handle, "snd_first", m_strSndFirst);
|
||||
|
@ -70,7 +70,7 @@ func_recharge::Restore(string strKey, string strValue)
|
|||
{
|
||||
switch (strKey) {
|
||||
case "user":
|
||||
m_eUser = edict_num(ReadFloat(strValue));
|
||||
m_eUser = ReadEntity(strValue);
|
||||
break;
|
||||
case "delay":
|
||||
m_flDelay = ReadFloat(strValue);
|
||||
|
|
|
@ -53,7 +53,7 @@ class infodecal:NSPointTrigger
|
|||
void
|
||||
infodecal::Save(float handle)
|
||||
{
|
||||
SaveFloat(handle, "child", num_for_edict(m_decChild));
|
||||
SaveEntity(handle, "child", m_decChild);
|
||||
SaveString(handle, "texture", m_strTexture);
|
||||
super::Save(handle);
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ infodecal::Restore(string strKey, string strValue)
|
|||
{
|
||||
switch (strKey) {
|
||||
case "child":
|
||||
m_decChild = (decal)edict_num(ReadFloat(strValue));
|
||||
m_decChild = (decal)ReadEntity(strValue);
|
||||
break;
|
||||
case "texture":
|
||||
m_strTexture = ReadString(strValue);
|
||||
|
|
|
@ -73,7 +73,7 @@ NSMomentary::SetMoveState(int status)
|
|||
void
|
||||
NSMomentary::Save(float handle)
|
||||
{
|
||||
SaveFloat(handle, "user", num_for_edict(m_eUser));
|
||||
SaveEntity(handle, "user", m_eUser);
|
||||
SaveVector(handle, "move_dir", m_vecMoveDir);
|
||||
SaveVector(handle, "pos1", m_vecPos1);
|
||||
SaveVector(handle, "pos2", m_vecPos2);
|
||||
|
@ -90,7 +90,7 @@ NSMomentary::Restore(string strKey, string strValue)
|
|||
{
|
||||
switch (strKey) {
|
||||
case "user":
|
||||
m_eUser = edict_num(ReadFloat(strValue));
|
||||
m_eUser = ReadEntity(strValue);
|
||||
break;
|
||||
case "move_dir":
|
||||
m_vecMoveDir = ReadVector(strValue);
|
||||
|
|
|
@ -49,7 +49,7 @@ void
|
|||
multi_manager_sub::Save(float handle)
|
||||
{
|
||||
SaveInt(handle, "m_iValue", m_iValue);
|
||||
SaveFloat(handle, "m_eActivator", num_for_edict(m_eActivator));
|
||||
SaveEntity(handle, "m_eActivator", m_eActivator);
|
||||
SaveFloat(handle, "m_flUntilTriggered", m_flUntilTriggered);
|
||||
super::Save(handle);
|
||||
}
|
||||
|
@ -62,10 +62,7 @@ multi_manager_sub::Restore(string strKey, string strValue)
|
|||
m_iValue = ReadInt(strValue);
|
||||
break;
|
||||
case "m_eActivator":
|
||||
float num = ReadFloat(strValue);
|
||||
|
||||
if (num)
|
||||
m_eActivator = edict_num(num);
|
||||
m_eActivator = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_flUntilTriggered":
|
||||
m_flUntilTriggered = ReadFloat(strValue);
|
||||
|
@ -105,22 +102,22 @@ multi_manager::Save(float handle)
|
|||
SaveString(handle, "m_strBuffer", m_strBuffer);
|
||||
SaveInt(handle, "m_iBusy", m_iBusy);
|
||||
SaveInt(handle, "m_iValue", m_iValue);
|
||||
SaveFloat(handle, "m_eTriggers_0", num_for_edict(m_eTriggers[0]));
|
||||
SaveFloat(handle, "m_eTriggers_1", num_for_edict(m_eTriggers[1]));
|
||||
SaveFloat(handle, "m_eTriggers_2", num_for_edict(m_eTriggers[2]));
|
||||
SaveFloat(handle, "m_eTriggers_3", num_for_edict(m_eTriggers[3]));
|
||||
SaveFloat(handle, "m_eTriggers_4", num_for_edict(m_eTriggers[4]));
|
||||
SaveFloat(handle, "m_eTriggers_5", num_for_edict(m_eTriggers[5]));
|
||||
SaveFloat(handle, "m_eTriggers_6", num_for_edict(m_eTriggers[6]));
|
||||
SaveFloat(handle, "m_eTriggers_7", num_for_edict(m_eTriggers[7]));
|
||||
SaveFloat(handle, "m_eTriggers_8", num_for_edict(m_eTriggers[8]));
|
||||
SaveFloat(handle, "m_eTriggers_9", num_for_edict(m_eTriggers[9]));
|
||||
SaveFloat(handle, "m_eTriggers_10", num_for_edict(m_eTriggers[10]));
|
||||
SaveFloat(handle, "m_eTriggers_11", num_for_edict(m_eTriggers[11]));
|
||||
SaveFloat(handle, "m_eTriggers_12", num_for_edict(m_eTriggers[12]));
|
||||
SaveFloat(handle, "m_eTriggers_13", num_for_edict(m_eTriggers[13]));
|
||||
SaveFloat(handle, "m_eTriggers_14", num_for_edict(m_eTriggers[14]));
|
||||
SaveFloat(handle, "m_eTriggers_15", num_for_edict(m_eTriggers[15]));
|
||||
SaveEntity(handle, "m_eTriggers_0", m_eTriggers[0]);
|
||||
SaveEntity(handle, "m_eTriggers_1", m_eTriggers[1]);
|
||||
SaveEntity(handle, "m_eTriggers_2", m_eTriggers[2]);
|
||||
SaveEntity(handle, "m_eTriggers_3", m_eTriggers[3]);
|
||||
SaveEntity(handle, "m_eTriggers_4", m_eTriggers[4]);
|
||||
SaveEntity(handle, "m_eTriggers_5", m_eTriggers[5]);
|
||||
SaveEntity(handle, "m_eTriggers_6", m_eTriggers[6]);
|
||||
SaveEntity(handle, "m_eTriggers_7", m_eTriggers[7]);
|
||||
SaveEntity(handle, "m_eTriggers_8", m_eTriggers[8]);
|
||||
SaveEntity(handle, "m_eTriggers_9", m_eTriggers[9]);
|
||||
SaveEntity(handle, "m_eTriggers_10", m_eTriggers[10]);
|
||||
SaveEntity(handle, "m_eTriggers_11", m_eTriggers[11]);
|
||||
SaveEntity(handle, "m_eTriggers_12", m_eTriggers[12]);
|
||||
SaveEntity(handle, "m_eTriggers_13", m_eTriggers[13]);
|
||||
SaveEntity(handle, "m_eTriggers_14", m_eTriggers[14]);
|
||||
SaveEntity(handle, "m_eTriggers_15", m_eTriggers[15]);
|
||||
super::Save(handle);
|
||||
}
|
||||
|
||||
|
@ -129,61 +126,61 @@ multi_manager::Restore(string strKey, string strValue)
|
|||
{
|
||||
switch (strKey) {
|
||||
case "m_strBuffer":
|
||||
m_strBuffer = strValue;
|
||||
m_strBuffer = ReadString(strValue);
|
||||
break;
|
||||
case "m_iBusy":
|
||||
m_iBusy = stoi(strValue);
|
||||
m_iBusy = ReadInt(strValue);
|
||||
break;
|
||||
case "m_iValue":
|
||||
m_iValue = stoi(strValue);
|
||||
m_iValue = ReadInt(strValue);
|
||||
break;
|
||||
case "m_eTriggers_0":
|
||||
m_eTriggers[0] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[0] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_1":
|
||||
m_eTriggers[1] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[1] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_2":
|
||||
m_eTriggers[2] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[2] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_3":
|
||||
m_eTriggers[3] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[3] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_4":
|
||||
m_eTriggers[4] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[4] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_5":
|
||||
m_eTriggers[5] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[5] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_6":
|
||||
m_eTriggers[6] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[6] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_7":
|
||||
m_eTriggers[7] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[7] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_8":
|
||||
m_eTriggers[8] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[8] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_9":
|
||||
m_eTriggers[9] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[9] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_10":
|
||||
m_eTriggers[10] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[10] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_11":
|
||||
m_eTriggers[11] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[11] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_12":
|
||||
m_eTriggers[12] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[12] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_13":
|
||||
m_eTriggers[13] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[13] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_14":
|
||||
m_eTriggers[14] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[14] = ReadEntity(strValue);
|
||||
break;
|
||||
case "m_eTriggers_15":
|
||||
m_eTriggers[15] = (multi_manager_sub)edict_num(stof(strValue));
|
||||
m_eTriggers[15] = ReadEntity(strValue);
|
||||
break;
|
||||
default:
|
||||
super::Restore(strKey, strValue);
|
||||
|
|
|
@ -102,7 +102,7 @@ trigger_changelevel::Save(float handle)
|
|||
SaveString(handle, "map", m_strMap);
|
||||
SaveString(handle, "landmark", m_strLandmark);
|
||||
SaveString(handle, "OnLevelChange", m_strOnLevelChange);
|
||||
SaveFloat(handle, "activator", num_for_edict(m_activator));
|
||||
SaveEntity(handle, "activator", m_activator);
|
||||
super::Save(handle);
|
||||
}
|
||||
|
||||
|
@ -126,7 +126,7 @@ trigger_changelevel::Restore(string strKey, string strValue)
|
|||
m_strOnLevelChange = ReadString(strValue);
|
||||
break;
|
||||
case "activator":
|
||||
m_activator = edict_num(ReadFloat(strValue));
|
||||
m_activator = ReadEntity(strValue);
|
||||
break;
|
||||
default:
|
||||
super::Restore(strKey, strValue);
|
||||
|
|
|
@ -56,6 +56,7 @@ class NSIO
|
|||
nonvirtual void(float, string, string) SaveString;
|
||||
nonvirtual void(float, string, vector) SaveVector;
|
||||
nonvirtual void(float, string, bool) SaveBool;
|
||||
nonvirtual void(float, string, entity) SaveEntity;
|
||||
|
||||
/* load game */
|
||||
nonvirtual float(string) ReadFloat;
|
||||
|
@ -63,6 +64,7 @@ class NSIO
|
|||
nonvirtual string(string) ReadString;
|
||||
nonvirtual vector(string) ReadVector;
|
||||
nonvirtual bool(string) ReadBool;
|
||||
nonvirtual entity(string) ReadEntity;
|
||||
|
||||
/* Handle incoming entities input messaging */
|
||||
virtual void(entity, string, string) Input;
|
||||
|
|
|
@ -165,31 +165,39 @@ void
|
|||
NSIO::SaveBool(float handle, string key, bool value)
|
||||
{
|
||||
if (value)
|
||||
fputs(handle, sprintf("%S \"%f\"\n", key, value));
|
||||
fputs(handle, sprintf("%S \"%f\"\n", key, value));
|
||||
}
|
||||
void
|
||||
NSIO::SaveFloat(float handle, string key, float value)
|
||||
{
|
||||
if (value)
|
||||
fputs(handle, sprintf("%S \"%f\"\n", key, value));
|
||||
fputs(handle, sprintf("%S \"%f\"\n", key, value));
|
||||
}
|
||||
void
|
||||
NSIO::SaveInt(float handle, string key, int value)
|
||||
{
|
||||
if (value)
|
||||
fputs(handle, sprintf("%S \"%i\"\n", key, value));
|
||||
fputs(handle, sprintf("%S \"%i\"\n", key, value));
|
||||
}
|
||||
void
|
||||
NSIO::SaveString(float handle, string key, string value)
|
||||
{
|
||||
if (value && value != "")
|
||||
fputs(handle, sprintf("%S %S\n", key, value));
|
||||
fputs(handle, sprintf("%S %S\n", key, value));
|
||||
}
|
||||
void
|
||||
NSIO::SaveVector(float handle, string key, vector value)
|
||||
{
|
||||
if (value)
|
||||
fputs(handle, sprintf("%S \"%v\"\n", key, value));
|
||||
fputs(handle, sprintf("%S \"%v\"\n", key, value));
|
||||
}
|
||||
void
|
||||
NSIO::SaveEntity(float handle, string key, entity targ)
|
||||
{
|
||||
float value = num_for_edict(targ);
|
||||
|
||||
if (value)
|
||||
fputs(handle, sprintf("%S \"%f\"\n", key, value));
|
||||
}
|
||||
|
||||
float
|
||||
|
@ -227,7 +235,17 @@ NSIO::ReadVector(string strValue)
|
|||
return stov(strValue);
|
||||
return __NULL__;
|
||||
}
|
||||
entity
|
||||
NSIO::ReadEntity(string strValue)
|
||||
{
|
||||
if (strValue && strValue != "") {
|
||||
float num = stof(strValue);
|
||||
|
||||
if (num)
|
||||
return edict_num(num);
|
||||
}
|
||||
return __NULL__;
|
||||
}
|
||||
|
||||
void
|
||||
NSIO::Save(float handle)
|
||||
|
|
Loading…
Reference in a new issue