34 #define C4OS_DELETED 0
36 #define C4OS_INACTIVE 2
52 #define COMD_UpRight 2
54 #define COMD_DownRight 4
56 #define COMD_DownLeft 6
69 #define VIS_LayerToggle 64
70 #define VIS_OverlayOnly 128
71 #define VIS_Editor 256
101 void RemoveSolidMask(
bool fBackupAttachment);
102 void MovementDigFreeTargetArea();
183 {
SetCommand(iCommand, pTarget,
C4VInt(iTx), iTy, pTarget2, fControl, iData, iRetries, szText); }
184 bool AddCommand(int32_t iCommand,
C4Object *pTarget,
C4Value iTx, int32_t iTy=0, int32_t iUpdateInterval=0,
C4Object *pTarget2=
nullptr,
bool fInitEvaluation=
true,
C4Value iData=
C4VNull,
bool fAppend=
false, int32_t iRetries=0,
C4String *szText=
nullptr, int32_t iBaseMode=0);
185 bool AddCommand(int32_t iCommand,
C4Object *pTarget=
nullptr, int32_t iTx=0, int32_t iTy=0, int32_t iUpdateInterval=0,
C4Object *pTarget2=
nullptr,
bool fInitEvaluation=
true,
C4Value iData=
C4VNull,
bool fAppend=
false, int32_t iRetries=0,
C4String *szText=
nullptr, int32_t iBaseMode=0)
186 {
return AddCommand(iCommand, pTarget,
C4VInt(iTx), iTy, iUpdateInterval, pTarget2, fInitEvaluation, iData, fAppend, iRetries, szText, iBaseMode); }
193 void SetSolidMask(int32_t iX, int32_t iY, int32_t iWdt, int32_t iHgt, int32_t iTX, int32_t iTY);
208 int32_t nx, int32_t ny, int32_t nr,
219 void DrawFace(
C4TargetFacet &cgo,
float offX,
float offY, int32_t iPhaseX=0, int32_t iPhaseY=0)
const;
220 void DrawFaceImpl(
C4TargetFacet &cgo,
bool action,
float fx,
float fy,
float fwdt,
float fhgt,
float tx,
float ty,
float twdt,
float thgt,
C4DrawTransform* transform)
const;
239 void UpdateFace(
bool bUpdateShape,
bool fTemp=
false);
242 bool At(int32_t ctx, int32_t cty)
const;
243 bool At(int32_t ctx, int32_t cty,
DWORD &ocf)
const;
246 bool ActivateMenu(int32_t iMenu, int32_t iMenuSelect=0, int32_t iMenuData=0, int32_t iMenuPosition=0,
C4Object *pTarget=
nullptr);
247 int32_t
ContactCheck(int32_t at_x, int32_t at_y, uint32_t *border_hack_contacts =
nullptr,
bool collide_halfvehic =
false);
255 void SetDir(int32_t tdir);
258 bool Enter(
C4Object *pTarget,
bool fCalls=
true,
bool fCopyMotion=
true,
bool *pfRejectCollect=
nullptr);
264 void DoMotion(int32_t mx, int32_t my);
266 void DoDamage(int32_t iLevel, int32_t iCausedByPlr, int32_t iCause);
267 void DoEnergy(int32_t iChange,
bool fExact, int32_t iCause, int32_t iCausedByPlr);
270 void DoCon(int32_t iChange,
bool grow_from_center);
273 bool Promote(int32_t torank,
bool exception,
bool fForceRankName);
279 BYTE GetArea(int32_t &aX, int32_t &aY, int32_t &aWdt, int32_t &aHgt)
const;
295 void SetName (
const char *NewName =
nullptr)
override;
298 bool SetLightRange(int32_t iToRange, int32_t iToFadeoutRange);
307 bool IsVisible(int32_t iForPlr,
bool fAsOverlay)
const;
318 bool GetDrawPosition(
const C4TargetFacet & cgo,
float x,
float y,
float zoom,
float & resultx,
float & resulty,
float & resultzoom)
const;
335 void GetViewPos(
float &riX,
float &riY,
float tx,
float ty,
const C4Facet &fctViewport)
const;
336 void GetViewPosPar(
float &riX,
float &riY,
float tx,
float ty,
const C4Facet &fctViewport)
const;
340 bool SetGraphics(
const char *szGraphicsName=
nullptr,
C4Def *pSourceDef=
nullptr);
int fixtoi(const C4Fixed &x)
C4Value C4VInt(int32_t i)
void CompileFunc(StdCompiler *pComp)
StdMeshInstanceAnimationNode * Animation
void UpdateSolidMask(bool fRestoreAttachedObjects)
bool Enter(C4Object *pTarget, bool fCalls=true, bool fCopyMotion=true, bool *pfRejectCollect=nullptr)
C4ValueArray * GetProperties() const override
void ClearCommand(C4Command *pUntil)
BYTE GetArea(int32_t &aX, int32_t &aY, int32_t &aWdt, int32_t &aHgt) const
bool GetDrawPosition(const C4TargetFacet &cgo, float &resultx, float &resulty, float &resultzoom) const
bool At(int32_t ctx, int32_t cty) const
void GetOCFForPos(int32_t ctx, int32_t cty, DWORD &ocf) const
bool SetGraphics(const char *szGraphicsName=nullptr, C4Def *pSourceDef=nullptr)
bool PutAwayUnusedObject(C4Object *pToMakeRoomForObject)
int32_t ContactCheck(int32_t at_x, int32_t at_y, uint32_t *border_hack_contacts=nullptr, bool collide_halfvehic=false)
bool ShiftContents(bool fShiftBack, bool fDoCalls)
void GetViewPos(float &riX, float &riY, float tx, float ty, const C4Facet &fctViewport) const
void SetHalfVehicleSolidMask(bool set)
C4PropList * GetAction() const
void UpdatLastEnergyLossCause(int32_t iNewCausePlr)
bool AddCommand(int32_t iCommand, C4Object *pTarget, C4Value iTx, int32_t iTy=0, int32_t iUpdateInterval=0, C4Object *pTarget2=nullptr, bool fInitEvaluation=true, C4Value iData=C4VNull, bool fAppend=false, int32_t iRetries=0, C4String *szText=nullptr, int32_t iBaseMode=0)
bool HalfVehicleSolidMask
void CopyMotion(C4Object *from)
void DoExperience(int32_t change)
void UpdateScriptPointers()
bool CreateContentsByList(C4IDList &idlist)
void UpdateFace(bool bUpdateShape, bool fTemp=false)
class C4GraphicsOverlay * pGfxOverlay
void DrawLine(C4TargetFacet &cgo, int32_t at_player)
bool GrabInfo(C4Object *pFrom)
bool ActivateEntrance(int32_t by_plr, C4Object *by_obj)
int32_t GetValue(C4Object *pInBase, int32_t iForPlayer)
void SetCommand(int32_t iCommand, C4Object *pTarget, C4Value iTx, int32_t iTy=0, C4Object *pTarget2=nullptr, bool fControl=false, C4Value iData=C4VNull, int32_t iRetries=0, C4String *szText=nullptr)
bool AdjustWalkRotation(int32_t iRangeX, int32_t iRangeY, int32_t iSpeed)
bool GetPropertyByS(const C4String *k, C4Value *pResult) const override
bool SetActionByName(C4String *ActName, C4Object *pTarget=nullptr, C4Object *pTarget2=nullptr, int32_t iCalls=SAC_StartCall|SAC_AbortCall, bool fForce=false)
void DrawPicture(C4Facet &cgo, bool fSelected=false, C4DrawTransform *transform=nullptr)
bool AddCommand(int32_t iCommand, C4Object *pTarget=nullptr, int32_t iTx=0, int32_t iTy=0, int32_t iUpdateInterval=0, C4Object *pTarget2=nullptr, bool fInitEvaluation=true, C4Value iData=C4VNull, bool fAppend=false, int32_t iRetries=0, C4String *szText=nullptr, int32_t iBaseMode=0)
int32_t GetProcedure() const
int32_t lightFadeoutRange
C4Object * CreateContents(C4PropList *)
void SetAudibilityAt(C4TargetFacet &cgo, int32_t iX, int32_t iY, int32_t player)
C4DrawTransform * pDrawTransform
void DrawTopFace(C4TargetFacet &cgo, int32_t iByPlayer=-1, DrawMode eDrawMode=ODM_Normal, float offX=0, float offY=0)
bool Init(C4PropList *ndef, C4Object *pCreator, int32_t owner, C4ObjectInfo *info, int32_t nx, int32_t ny, int32_t nr, C4Real nxdir, C4Real nydir, C4Real nrdir, int32_t iController)
int32_t AddObjectAndContentsToArray(C4ValueArray *target_array, int32_t index=0)
void SetName(const char *NewName=nullptr) override
bool IsPlayerObject(int32_t iPlayerNumber=NO_OWNER) const
void PrepareDrawing() const
StdStrBuf GetDataString()
bool IsMoveableBySolidMask(int ComparisonPlane) const
void Picture2Facet(C4FacetSurface &cgo)
void GetParallaxity(int32_t *parX, int32_t *parY) const
bool ActivateMenu(int32_t iMenu, int32_t iMenuSelect=0, int32_t iMenuData=0, int32_t iMenuPosition=0, C4Object *pTarget=nullptr)
void SetAlive(bool Alive)
bool GetDragImage(C4Object **drag_object, C4Def **drag_id) const
bool MenuCommand(const char *szCommand)
void ClearPointers(C4Object *ptr)
bool Contact(int32_t cnat)
bool IsVisible(int32_t iForPlr, bool fAsOverlay) const
class C4ObjectMenu * Menu
C4Object * GetObject() override
void SetCategory(int32_t Category)
int32_t GetSolidMaskPlane() const
bool IsInLiquidCheck() const
void SetDir(int32_t tdir)
bool HasGraphicsOverlayRecursion(const C4Object *pCheckObj) const
void Fling(C4Real txdir, C4Real tydir, bool fAddSpeed)
void StopAndContact(C4Real &ctco, C4Real limit, C4Real &speed, int32_t cnat)
bool Push(C4Real txdir, C4Real dforce, bool fStraighten)
void ForcePosition(C4Real target_x, C4Real target_y)
bool SetLightRange(int32_t iToRange, int32_t iToFadeoutRange)
void DirectComContents(C4Object *pTarget, bool fDoCalls)
bool SetLightColor(uint32_t iValue)
C4MaterialList * MaterialContents
bool CloseMenu(bool fForce)
void DrawActionFace(C4TargetFacet &cgo, float offX, float offY) const
void ClearParticleLists()
bool RemoveGraphicsOverlay(int32_t iOverlayID)
C4SolidMask * pSolidMaskData
int32_t iLastAttachMovementFrame
C4Object const * GetObject() const override
StdMeshInstance * pMeshInstance
void AssignDeath(bool fForced)
bool Lift(C4Real tydir, C4Real dforce)
void DoCon(int32_t iChange, bool grow_from_center)
void BoundsCheck(C4Real &target_x, C4Real &target_y)
int32_t LastEnergyLossCausePlayer
void AssignRemoval(bool exit_contents=false)
C4Command * FindCommand(int32_t iCommandType) const
void ClearInfo(C4ObjectInfo *pInfo)
void DrawSolidMask(C4TargetFacet &cgo) const
void ClearContentsAndContained(bool fDoCalls=true)
bool Collect(C4Object *pObj)
void MovePosition(int32_t dx, int32_t dy)
C4NotifyingObjectList Contents
class C4ParticleList * BackParticles
void Draw(C4TargetFacet &cgo, int32_t iByPlayer=-1, DrawMode eDrawMode=ODM_Normal, float offX=0, float offY=0)
void DrawSelectMark(C4TargetFacet &cgo) const
void Denumerate(C4ValueNumbers *) override
bool CheckSolidMaskRect()
bool Exit(int32_t iX=0, int32_t iY=0, int32_t iR=0, C4Real iXDir=Fix0, C4Real iYDir=Fix0, C4Real iRDir=Fix0, bool fCalls=true)
bool StatusDeactivate(bool fClearPointers)
void GetViewPosPar(float &riX, float &riY, float tx, float ty, const C4Facet &fctViewport) const
void SetOnFire(bool OnFire) override
bool IsUserPlayerObject()
BYTE GetEntranceArea(int32_t &aX, int32_t &aY, int32_t &aWdt, int32_t &aHgt) const
void GrabContents(C4Object *pFrom)
void CompileFunc(StdCompiler *pComp, C4ValueNumbers *)
bool ChangeDef(C4ID idNew)
bool Promote(int32_t torank, bool exception, bool fForceRankName)
void VerticalBounds(C4Real &target_y)
void FinishedDrawing() const
uint32_t GetLightColor() const
void DoDamage(int32_t iLevel, int32_t iCausedByPlr, int32_t iCause)
bool CanConcatPictureWith(C4Object *pOtherObject) const
StdStrBuf GetInfoString()
void SetSolidMask(int32_t iX, int32_t iY, int32_t iWdt, int32_t iHgt, int32_t iTX, int32_t iTY)
void UpdateShape(bool bUpdateVertices=true)
bool SetPhase(int32_t iPhase)
void DrawFaceImpl(C4TargetFacet &cgo, bool action, float fx, float fy, float fwdt, float fhgt, float tx, float ty, float twdt, float thgt, C4DrawTransform *transform) const
bool SetAction(C4PropList *Act, C4Object *pTarget=nullptr, C4Object *pTarget2=nullptr, int32_t iCalls=SAC_StartCall|SAC_AbortCall, bool fForce=false)
void SideBounds(C4Real &target_x)
void SetPropertyByS(C4String *k, const C4Value &to) override
void SetRotation(int32_t nr)
bool SetOwner(int32_t iOwner)
void DoMotion(int32_t mx, int32_t my)
void DrawFace(C4TargetFacet &cgo, float offX, float offY, int32_t iPhaseX=0, int32_t iPhaseY=0) const
class C4GraphicsOverlay * GetGraphicsOverlay(int32_t iForID) const
C4DefGraphics * pGraphics
C4DefGraphics * GetGraphics() const
void SetCommand(int32_t iCommand, C4Object *pTarget=nullptr, int32_t iTx=0, int32_t iTy=0, C4Object *pTarget2=nullptr, bool fControl=false, C4Value iData=C4VNull, int32_t iRetries=0, C4String *szText=nullptr)
void UpdateGraphics(bool fGraphicsChanged, bool fTemp=false)
void ResetProperty(C4String *k) override
BYTE GetMomentum(C4Real &rxdir, C4Real &rydir) const
void DoBreath(int32_t iChange)
class C4ParticleList * FrontParticles
void DoEnergy(int32_t iChange, bool fExact, int32_t iCause, int32_t iCausedByPlr)