📄 csbase.h
字号:
// Base class for ClientDE and ServerDE. This is just here for b/w compatibility.
#ifndef __CSBASE_H__
#define __CSBASE_H__
#include "basedefs_de.h"
class CSBase
{
// Messaging functions. ALL these functions are obsolete. Use the LMessage functions.
public:
// Start a data message for writing. A data message is used to write an HMESSAGEWRITE into another
// already open HMESSAGEWRITE. When the data message is complete, first call
// WriteToMessageHMessageWrite to write it into the other HMESSAGE, then call EndMessageHMessageWrite to free it.
virtual HMESSAGEWRITE StartHMessageWrite()=0;
virtual DRESULT WriteToMessageFloat(HMESSAGEWRITE hMessage, float val);
virtual DRESULT WriteToMessageByte(HMESSAGEWRITE hMessage, DBYTE val);
virtual DRESULT WriteToMessageWord(HMESSAGEWRITE hMessage, D_WORD val);
virtual DRESULT WriteToMessageDWord(HMESSAGEWRITE hMessage, DDWORD val);
virtual DRESULT WriteToMessageString(HMESSAGEWRITE hMessage, char *pStr);
virtual DRESULT WriteToMessageVector(HMESSAGEWRITE hMessage, DVector *pVal); // 12 bytes
virtual DRESULT WriteToMessageCompVector(HMESSAGEWRITE hMessage, DVector *pVal); // 9 bytes
virtual DRESULT WriteToMessageCompPosition(HMESSAGEWRITE hMessage, DVector *pVal); // 7 bytes
virtual DRESULT WriteToMessageRotation(HMESSAGEWRITE hMessage, DRotation *pVal);
virtual DRESULT WriteToMessageHString(HMESSAGEWRITE hMessage, HSTRING hString);
// Writes a HMESSAGEWRITE into an already opened HMESSAGEWRITE.
// Inputs:
// hMessage - HMESSAGEWRITE written to.
// hDataMessage - HMESSAGEWRITE written from.
virtual DRESULT WriteToMessageHMessageWrite(HMESSAGEWRITE hMessage, HMESSAGEWRITE hDataMessage);
// Writes a HMESSAGEREAD into an already opened HMESSAGEWRITE.
// Inputs:
// hMessage - HMESSAGEWRITE written to.
// hDataMessage - HMESSAGEREAD written from.
virtual DRESULT WriteToMessageHMessageRead(HMESSAGEWRITE hMessage, HMESSAGEREAD hDataMessage);
// Helper so you don't have to FormatString and FreeString..
virtual DRESULT WriteToMessageFormattedHString(HMESSAGEWRITE hMessage, int messageCode, ...);
// Note: you can't send object references to the client yet, so the client can't
// even read object references.
// You can't write object references in a HMESSAGEWRITE passed in MID_SAVEOBJECT.
virtual DRESULT WriteToMessageObject(HMESSAGEWRITE hMessage, HOBJECT hObj);
// Use this only while saving objects (inside MID_SAVEOBJECT).
virtual DRESULT WriteToLoadSaveMessageObject(HMESSAGEWRITE hMessage, HOBJECT hObject);
// When your OnMessage function is called, use the handle you're given
// to read the message data with these functions.
virtual float ReadFromMessageFloat(HMESSAGEREAD hMessage);
virtual DBYTE ReadFromMessageByte(HMESSAGEREAD hMessage);
virtual D_WORD ReadFromMessageWord(HMESSAGEREAD hMessage);
virtual DDWORD ReadFromMessageDWord(HMESSAGEREAD hMessage);
virtual char* ReadFromMessageString(HMESSAGEREAD hMessage);
virtual void ReadFromMessageVector(HMESSAGEREAD hMessage, DVector *pVal); // 12 bytes
virtual void ReadFromMessageCompVector(HMESSAGEREAD hMessage, DVector *pVal); // 9 bytes
virtual void ReadFromMessageCompPosition(HMESSAGEREAD hMessage, DVector *pVal); // 7 bytes
virtual void ReadFromMessageRotation(HMESSAGEREAD hMessage, DRotation *pVal);
virtual HOBJECT ReadFromMessageObject(HMESSAGEREAD hMessage);
virtual HSTRING ReadFromMessageHString(HMESSAGEREAD hMessage);
// Use this only while loading objects (inside MID_LOADOBJECT).
virtual DRESULT ReadFromLoadSaveMessageObject(HMESSAGEREAD hMessage, HOBJECT *hObject);
// Reads a data message from an HMESSAGEREAD. The returned HMESSAGEREAD can then be used in the
// ReadFromMessageX functions. This will create a new HMESSAGEREAD which must be
// freed with a call to EndHMessageRead().
// Inputs:
// hMessage - HMESSAGEREAD read from.
virtual HMESSAGEREAD ReadFromMessageHMessageRead(HMESSAGEREAD hMessage);
// Frees a HMESSAGEREAD created from a call of ReadFromMessageHMessageRead.
virtual void EndHMessageRead(HMESSAGEREAD hMessage);
// Frees a HMESSAGEWRITE created from a call of StartHMessageWrite.
virtual void EndHMessageWrite(HMESSAGEWRITE hMessage);
// Reset reading (so you can read the message again).
// This is useful if you read out of a message and subclasses
// will be reading out of it. Note: the message will AUTOMATICALLY
// reset when you hit the end, so you won't need this in most cases.
virtual void ResetRead(HMESSAGEREAD hRead);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -