Files
firestorm/Gameleap/code/mw4/Code/MW4/move_rect.hpp
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

67 lines
1.6 KiB
C++

#pragma once
#ifndef __MOVERECTHPP__
#define __MOVERECTHPP__
#pragma warning (push)
#include <vector>
#pragma warning (pop)
namespace MW4AI
{
struct OBRect
{
Scalar left,right,top,bottom;
int building;
bool vertical; // true if this rect is passable vertically
OBRect (Scalar p1,Scalar p2,Scalar p3,Scalar p4,int p5,bool p6)
{
left = p1;
top = p2;
right = p3;
bottom = p4;
building = p5;
vertical = p6;
}
OBRect (void)
{
left = right = top = bottom = 0;
building = -1;
vertical = false;
}
Point3D TopPoint (void) const
{ return Point3D (((right-left)/2.0f)+left,0.0f,top-BLOCK_GRID_RES); }
Point3D BottomPoint (void) const
{ return Point3D (((right-left)/2.0f)+left,0.0f,bottom+BLOCK_GRID_RES); }
Point3D LeftPoint (void) const
{ return Point3D (left-BLOCK_GRID_RES,0.0f,((bottom-top)/2.0f)+top); }
Point3D RightPoint (void) const
{ return Point3D (right+BLOCK_GRID_RES,0.0f,((bottom-top)/2.0f)+top); }
};
class CMoveRectList
{
private:
stlport::vector <OBRect> m_Rects;
void AddBuildingData (void);
void DumpFile (void);
public:
CMoveRectList (Stuff::MemoryStream *stream);
CMoveRectList (void);
~CMoveRectList (void);
bool RectWithin (Stuff::Point3D& pt,Stuff::Scalar dist);
void Create (WorkCallBack callback);
void SaveFile (const char *filename);
static void ConstructStream (Stuff::MemoryStream *stream,const char *filename);
const OBRect *Collide (const Point3D& start,const Point3D& end) const;
const OBRect *Inside (const Point3D& pt) const;
void BridgeKilled (int id);
};
};
#endif