public VarList.VarData QueryRecord(string name, int row, int col) { VarList.VarData result = new VarList.VarData(); try { if (!mRecordSet.ContainsKey(name)) { return(result); } GameRecord record = mRecordSet[name]; if (record == null) { return(result); } if (!record.GetValue(row, col, ref result)) { //Log.Trace("Error,GameObject.QueryRecord GetValue Failed"); } } catch (Exception ex) { //Log.Trace("Error:GameObject.QueryRecord Exception :" + ex.ToString()); } return(result); }
public bool QueryRecordObject(string name, int row, int col, ref ObjectID oResult) { try { if (!mRecordSet.ContainsKey(name)) { return(false); } GameRecord record = mRecordSet[name]; if (record == null) { return(false); } VarList.VarData result = FreeAllocManager.GetInstance.GetVarObject(); result.nType = VarType.Object; if (!record.GetValue(row, col, ref result)) { FreeAllocManager.GetInstance.SetVarData(result); return(false); } oResult = (result.Data as ObjectID).Clone(); FreeAllocManager.GetInstance.SetVarData(result); } catch (Exception ex) { //Log.Trace("Error:GameObject.QueryRecord Exception :" + ex.ToString()); } return(true); }
public bool UpdateProperty(ref string name, VarList.VarData val) { try { if (mPropSet == null) { return(false); } if (!mPropSet.ContainsKey(name)) { mPropSet.Add(name, new GameProperty()); } GameProperty prop = mPropSet[name]; //prop.Name = name; prop.setPropValue(val); } catch (Exception ex) { //Log.Trace("Error,GameObject.UpdateProperty Exception:" + ex.ToString()); return(false); } return(true); }
public bool QueryPropObject(string strPropName, ref ObjectID oResult) { if (strPropName == null) { return(false); } try { if (!mPropSet.ContainsKey(strPropName)) { return(false); } GameProperty prop = mPropSet[strPropName]; if (null == prop) { return(false); } VarList.VarData propValue = prop.getPropValue(); if (propValue == null) { return(false); } if (propValue.nType != VarType.Object) { return(false); } oResult = (propValue.Data as ObjectID).Clone(); return(true); } catch (Exception ex) { //Log.TraceError("Error, exception " + ex.ToString()); return(false); } }
public int FindRecordRow(string name, int col, VarList.VarData key, int begRow) { try { if (!mRecordSet.ContainsKey(name)) { return(-1); } GameRecord record = mRecordSet[name]; if (record == null) { return(-1); } return(record.FindRow(col, key, begRow, false)); } catch (Exception ex) { //Log.Trace("Error:GameObject.FindRecordRow Exception :" + ex.ToString()); return(-1); } }
public void setPropValue(VarList.VarData val) { propValue.nType = val.nType; propValue.Data = val.Data; }
public GameProperty() { propValue = new VarList.VarData(); }
public bool GetValue(int row, int col, ref VarList.VarData result) { if (row < 0 || col < 0 || row >= GetRowCount() || col >= GetColcount()) { //Log.Trace("Error,GameRecord.GetValue row or col out of range:"); return(false); } try { VarList rowItem = rowSet[row]; if (rowItem == null) { return(false); } if (rowItem.GetCount() != GetColcount()) { //Log.Trace("Error,GameRecord.GetValue Col Error:"); return(false); } switch (colTypes[col]) { case VarType.Bool: { bool value = rowItem.GetBool(col); result.Data = value; } break; case VarType.Int: { int value = rowItem.GetInt(col); result.Data = value; } break; case VarType.Int64: { long value = rowItem.GetInt64(col); result.Data = value; } break; case VarType.Float: { float value = rowItem.GetFloat(col); result.Data = value; } break; case VarType.Double: { double value = rowItem.GetDouble(col); result.Data = value; } break; case VarType.String: { string value = rowItem.GetString(col); result.Data = value; } break; case VarType.WideStr: { string value = rowItem.GetWideStr(col); result.Data = value; } break; case VarType.Object: { ObjectID value = rowItem.GetObject(col); if (value.IsNull()) { //Log.Trace("Error,GameRecord.GetValue objid is null:"); return(false); } result.Data = value; } break; default: //Log.Trace("Error,GameRecord.GetValue type error:"); return(false); } } catch (Exception ex) { //Log.Trace("Error,GameRecord.GetValue Exception:" + ex.ToString()); return(false); } return(true); }
public int FindRow(int col, VarList.VarData key, int begRow, bool ignoreCase) { if (col >= GetColcount()) { return(-1); } if (null == key) { return(-1); } int row_num = GetRowCount(); if (begRow > row_num) { return(-1); } int nColType = GetColType(col); if (0 == nColType) { return(-1); } for (int i = begRow; i < row_num; i++) { VarList rowValueItem = rowSet[i]; if (null == rowValueItem || 0 == rowValueItem.GetCount()) { return(-1); } switch (nColType) { case VarType.Bool: if (rowValueItem.GetBool(col) == (bool)key.Data) { return(i); } break; case VarType.Int: if (rowValueItem.GetInt(col) == (int)key.Data) { return(i); } break; case VarType.Int64: if (rowValueItem.GetInt64(col) == (long)key.Data) { return(i); } break; case VarType.Float: if (Tools.FloatEqual(rowValueItem.GetFloat(col), (float)key.Data)) { return(i); } break; case VarType.Double: if (Tools.DoubleEqual(rowValueItem.GetDouble(col), (double)key.Data)) { return(i); } break; case VarType.String: if (0 == String.Compare(rowValueItem.GetString(col), key.Data as string, ignoreCase)) { return(i); } break; case VarType.WideStr: if (0 == String.Compare(rowValueItem.GetWideStr(col), key.Data as string, ignoreCase)) { return(i); } break; case VarType.Object: if (rowValueItem.GetObject(col).Equals(key.Data as ObjectID)) { return(i); } break; default: break; } } return(-1); }
public int Find(int col, VarList.VarData key, int begRow, bool ignoreCase) { return(FindRow(col, key, begRow, ignoreCase)); }
private bool InnerRecvProperty(GameObj obj, LoadArchive loadAr, int count, bool change) { VarList.VarData key = new VarList.VarData(); for (int i = 0; i < count; i++) { int index = 0; if (!loadAr.ReadInt16(ref index)) { return(false); } if (index >= mPropertyTable.Count) { return(false); } PropData propData = GetPropDataByIndex(index); if (propData == null) { return(false); } propData.nCount = propData.nCount + 1; if (!InnerParsePropValue(loadAr, propData.nType, ref key)) { return(false); } if (!obj.UpdateProperty(ref propData.strName, key)) { return(false); } if (change) { VarList argList = new VarList(); argList.AddObject(obj.GetIdent()); argList.AddString(propData.strName); Excute_CallBack("on_object_property_change", argList); } } return(true); }
public void SetVarData(VarList.VarData varData) { switch (varData.nType) { case VarType.Bool: free_VarBool.SetT(varData); break; case VarType.Int: free_VarInt.SetT(varData); break; case VarType.Int64: free_VarInt64.SetT(varData); break; case VarType.Float: free_Float.SetT(varData); break; case VarType.Double: free_Double.SetT(varData); break; case VarType.String: free_VarString.SetT(varData); break; case VarType.WideStr: free_WString.SetT(varData); break; case VarType.Object: free_Object.SetT(varData); break; case VarType.UserData: free_UserData.SetT(varData); break; } }
private bool InnerParsePropValue(LoadArchive loadAr, int type, ref VarList.VarData key) { switch (type) { case OuterDataType.OUTER_TYPE_BYTE: { int value = 0; if (!loadAr.ReadInt8(ref value)) { return(false); } key.nType = VarType.Int; key.Data = value; } break; case OuterDataType.OUTER_TYPE_WORD: { int value = 0; if (!loadAr.ReadInt16(ref value)) { return(false); } key.nType = VarType.Int; key.Data = value; } break; case OuterDataType.OUTER_TYPE_DWORD: { int value = 0; if (!loadAr.ReadInt32(ref value)) { return(false); } key.nType = VarType.Int; key.Data = value; } break; case OuterDataType.OUTER_TYPE_QWORD: { long value = 0; if (!loadAr.ReadInt64(ref value)) { return(false); } key.nType = VarType.Int64; key.Data = value; } break; case OuterDataType.OUTER_TYPE_FLOAT: { float value = 0.0f; if (!loadAr.ReadFloat(ref value)) { return(false); } key.nType = VarType.Float; key.Data = value; } break; case OuterDataType.OUTER_TYPE_DOUBLE: { double value = 0.0; if (!loadAr.ReadDouble(ref value)) { return(false); } key.nType = VarType.Double; key.Data = value;; } break; case OuterDataType.OUTER_TYPE_STRING: { string value = ""; if (!loadAr.ReadString(ref value)) { return(false); } key.nType = VarType.String; key.Data = value; } break; case OuterDataType.OUTER_TYPE_WIDESTR: { string value = ""; if (!loadAr.ReadWideStr(ref value)) { return(false); } key.nType = VarType.WideStr; key.Data = value; } break; case OuterDataType.OUTER_TYPE_OBJECT: { ObjectID value = new ObjectID(); if (!loadAr.ReadObject(ref value)) { return(false); } key.nType = VarType.Object; key.Data = value; } break; default: return(false); } return(true); }