00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef __WORLDPROP_SRVR_H__
00014 #define __WORLDPROP_SRVR_H__
00015
00016
00017
00018 #include <ltbasedefs.h>
00019 #include <ltengineobjects.h>
00020 #include <iobjectplugin.h>
00021 #include <autoview/autoview.h>
00022
00023
00025 enum EGameType
00026 {
00027 GT_FFA_DM = 0,
00028 GT_CTF,
00029 GT_UNITY_vs_HARM,
00030
00031 GT_NUM_TYPES
00032 };
00033
00034 const char g_aszGameTypes[GT_NUM_TYPES][16] =
00035 {
00036 "FFA DM",
00037 "CTF",
00038 "UNITY vs HARM"
00039 };
00040
00041
00043 class CWorldPropSrvr : public BaseClass
00044 {
00045 public:
00046
00047 CWorldPropSrvr();
00048 virtual ~CWorldPropSrvr();
00049
00050 distr_class(CWorldPropSrvr);
00051
00052 uint32 EngineMessageFn(uint32 messageID, void *pData, float fData);
00053
00054 private:
00055
00056
00057 uint32 PreCreate(void *pData, float fData);
00058 void ObjectCreated();
00059 void Update();
00060
00061
00062
00063 void ReadProps(ObjectCreateStruct* pStruct);
00064 void PostReadProps();
00065
00066
00067
00068 distr_uint32( m_nFarZ, AVITEM_REG, 2, 10000);
00069 distr_vector( m_vBackgroundColor, AVITEM_REG, 2, LTVector3f(0, 0, 0));
00070
00071 distr_bool( m_bFogEnable, AVITEM_REG, 2, false);
00072 distr_vector( m_vFogColor, AVITEM_REG, 2, LTVector3f(0, 0, 0));
00073 distr_uint32( m_nFogNearZ, AVITEM_REG, 2, 0);
00074 distr_uint32( m_nFogFarZ, AVITEM_REG, 2, 2000);
00075
00076 distr_bool( m_bSkyFogEnable, AVITEM_REG, 2, false);
00077 distr_uint32( m_nSkyFogNearZ, AVITEM_REG, 2, 0);
00078 distr_uint32( m_nSkyFogFarZ, AVITEM_REG, 2, 2000);
00079
00080 distr_bool( m_bSkyPanEnable, AVITEM_REG, 2, false);
00081 distr_string( m_szSkyPanTexture, AVITEM_REG, 2, "");
00082 distr_int32( m_nSkyPanAutoPanX, AVITEM_REG, 2, 0);
00083 distr_int32( m_nSkyPanAutoPanZ, AVITEM_REG, 2, 0);
00084 distr_float( m_fSkyPanScaleX, AVITEM_REG, 2, 1.0f);
00085 distr_float( m_fSkyPanScaleZ, AVITEM_REG, 2, 1.0f);
00086
00087 distr_float( m_fSkyScale, AVITEM_REG, 2, 1.0f);
00088
00089
00090
00091 distr_string( m_szServerConString, AVITEM_REG, 2, "");
00092 distr_string( m_szClientConString, AVITEM_REG, 2, "");
00093 distr_uint32( m_eGameType, AVITEM_REG, 2, GT_FFA_DM);
00094
00095 distr_bool( m_bApply, AVITEM_REG, 1, false);
00096 };
00097
00098
00099
00102 class CWorldPropPlugin : public IObjectPlugin
00103 {
00104 public:
00105
00106 virtual LTRESULT PreHook_EditStringList(
00107 const char* szRezPath,
00108 const char* szPropName,
00109 char** aszStrings,
00110 uint32* pcStrings,
00111 const uint32 cMaxStrings,
00112 const uint32 cMaxStringLength);
00113 };
00114
00115
00116 #endif // __WORLDPROP_SRVR_H__