Files
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

111 lines
1.7 KiB
C++

#pragma once
#define FEATUREPOOL_HPP
#include "Compost.hpp"
namespace Compost
{
class FeatureGrid;
class FeaturePool
{
friend class FeatureGrid;
public:
FeaturePool();
FeaturePool(
Stuff::MemoryStream *stream
);
~FeaturePool();
void
LoadIndex(
Stuff::MemoryStream *stream
);
void
SaveIndex(
Stuff::MemoryStream *stream
);
void
LoadIndex(
Stuff::NotationFile *note_file
);
void
SaveIndex(
Stuff::NotationFile *note_file
);
void
Add(Feature *f);
void
Insert(Feature *f, int at);
void
Move(int from, int to);
void
Remove(int from);
void
Remove(Feature *f);
int
Find(Feature *f);
int
GetNumberOfFeatures() { return used; }
Feature*
GetFeatureNumber(int idx) { return features[idx]; }
Feature*
GetFeature(int idx);
Feature*
GetFeature(const char *feture_name);
int
GetFeaturePosition(Feature*);
Feature*
IsUsed(Feature_Texture*);
/*
int
ShootRay(unsigned short x, unsigned short z);
int
ShootRectangle(
unsigned short x,
unsigned short z,
unsigned short width,
unsigned short height
);
*/
void
SaveFeature(
Stuff::MemoryStream *stream,
Feature*
);
Feature*
LoadFeature(
Stuff::MemoryStream *stream,
int version
);
void
SaveFeature(
Stuff::NotationFile *note_file,
Feature*
);
Feature*
LoadFeature(
Stuff::Page *fet_page,
int version
);
protected:
int max, used;
Feature* rayCollect[MAX_NUMBER_LAYERS];
Stuff::DynamicArrayOf<Feature*> rectangleCollect;
Stuff::DynamicArrayOf<Feature*> features;
};
}