DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnStoreLoad()

bool Entity::OnStoreLoad ( ParamsReadContext ctx,
int version )
inlineprotected

Called when data is loaded from persistence (on server side).

void OnStoreLoad(ParamsReadContext ctx, int version)
{
// dont forget to propagate this call trough class hierarchy!
if ( !super.OnStoreLoad(ctx, version) )
return false;
// read data loaded from game database (format and order of reading must be the same as writing!)
int a;
if ( !ctx.Read(a) )
return false;
float b;
if ( !ctx.Read(b) )
return false;
return true;
}
bool OnStoreLoad(ParamsReadContext ctx, int version)
Called when data is loaded from persistence (on server side).
proto bool Read(void value_in)
Serializer ParamsReadContext
Определения gameplay.c:15

См. определение в файле 3_Game/DayZ/Entities/EntityAI.c строка 2989

2990 {
2991 // Restoring of energy related states
2992 if ( m_EM )
2993 {
2994 // Load energy amount
2995 float f_energy = 0;
2996 if ( !ctx.Read( f_energy ) )
2997 f_energy = 0;
2998 m_EM.SetEnergy(f_energy);
2999
3000 // Load passive/active state
3001 bool b_is_passive = false;
3002 if ( !ctx.Read( b_is_passive ) )
3003 return false;
3004 m_EM.SetPassiveState(b_is_passive);
3005
3006 // Load ON/OFF state
3007 bool b_is_on = false;
3008 if ( !ctx.Read( b_is_on ) )
3009 {
3010 m_EM.SwitchOn();
3011 return false;
3012 }
3013
3014 // Load plugged/unplugged state
3015 bool b_is_plugged = false;
3016 if ( !ctx.Read( b_is_plugged ) )
3017 return false;
3018
3019 // ENERGY SOURCE
3020 if ( version <= 103 )
3021 {
3022 // Load energy source ID low
3023 int i_energy_source_ID_low = 0; // Even 0 can be valid ID!
3024 if ( !ctx.Read( i_energy_source_ID_low ) )
3025 return false;
3026
3027 // Load energy source ID high
3028 int i_energy_source_ID_high = 0; // Even 0 can be valid ID!
3029 if ( !ctx.Read( i_energy_source_ID_high ) )
3030 return false;
3031 }
3032 else
3033 {
3034 int b1 = 0;
3035 int b2 = 0;
3036 int b3 = 0;
3037 int b4 = 0;
3038
3039 if ( !ctx.Read(b1) ) return false;
3040 if ( !ctx.Read(b2) ) return false;
3041 if ( !ctx.Read(b3) ) return false;
3042 if ( !ctx.Read(b4) ) return false;
3043
3044 if ( b_is_plugged )
3045 {
3046 // Because function GetEntityByPersitentID() cannot be called here, ID values must be stored and used later.
3047 m_EM.StoreEnergySourceIDs( b1, b2, b3, b4 );
3048 m_EM.RestorePlugState(true);
3049 }
3050 }
3051
3052 if (b_is_on)
3053 {
3054 m_EM.SwitchOn();
3055 }
3056 }
3057
3058 if (version >= 140)
3059 {
3060 // variable management system
3061 if (!LoadVariables(ctx, version))
3062 return false;
3063 }
3064
3065 return true;
3066 }
ComponentEnergyManager m_EM
bool LoadVariables(ParamsReadContext ctx, int version=-1)

Перекрестные ссылки LoadVariables(), m_EM и Serializer::Read().