mirror of
https://github.com/OpenMW/openmw.git
synced 2025-10-23 15:56:37 +00:00
This reverts commitad609bff78. Revert "Made incorrect nif get error message more informative." This reverts commit9909c4abad. Revert "Build the nif file tester by default" This reverts commitc1315ed90c. Revert "Converted most nifstream "get multiple" functions to the templated version" This reverts commit2619d57bb6. Revert "Add a templated option for getting vectors to NIFStream" This reverts commitf318ee0b8c. Revert "Made NIFStream getters templated" This reverts commit4edc4142f3.
91 lines
1.7 KiB
C++
91 lines
1.7 KiB
C++
///This file holds the main classes of NIF Records used by everything else.
|
|
#ifndef OPENMW_COMPONENTS_NIF_BASE_HPP
|
|
#define OPENMW_COMPONENTS_NIF_BASE_HPP
|
|
|
|
#include "record.hpp"
|
|
#include "niffile.hpp"
|
|
#include "recordptr.hpp"
|
|
#include "nifstream.hpp"
|
|
#include "nifkey.hpp"
|
|
|
|
namespace Nif
|
|
{
|
|
/** A record that can have extra data. The extra data objects
|
|
themselves descend from the Extra class, and all the extra data
|
|
connected to an object form a linked list
|
|
*/
|
|
class Extra : public Record
|
|
{
|
|
public:
|
|
ExtraPtr extra;
|
|
|
|
void read(NIFStream *nif) { extra.read(nif); }
|
|
void post(NIFFile *nif) { extra.post(nif); }
|
|
};
|
|
|
|
class Controller : public Record
|
|
{
|
|
public:
|
|
ControllerPtr next;
|
|
int flags;
|
|
float frequency, phase;
|
|
float timeStart, timeStop;
|
|
ControlledPtr target;
|
|
|
|
void read(NIFStream *nif)
|
|
{
|
|
next.read(nif);
|
|
|
|
flags = nif->getUShort();
|
|
|
|
frequency = nif->getFloat();
|
|
phase = nif->getFloat();
|
|
timeStart = nif->getFloat();
|
|
timeStop = nif->getFloat();
|
|
|
|
target.read(nif);
|
|
}
|
|
|
|
void post(NIFFile *nif)
|
|
{
|
|
Record::post(nif);
|
|
next.post(nif);
|
|
target.post(nif);
|
|
}
|
|
};
|
|
|
|
/// Anything that has a controller
|
|
class Controlled : public Extra
|
|
{
|
|
public:
|
|
ControllerPtr controller;
|
|
|
|
void read(NIFStream *nif)
|
|
{
|
|
Extra::read(nif);
|
|
controller.read(nif);
|
|
}
|
|
|
|
void post(NIFFile *nif)
|
|
{
|
|
Extra::post(nif);
|
|
controller.post(nif);
|
|
}
|
|
};
|
|
|
|
/// Has name, extra-data and controller
|
|
class Named : public Controlled
|
|
{
|
|
public:
|
|
std::string name;
|
|
|
|
void read(NIFStream *nif)
|
|
{
|
|
name = nif->getString();
|
|
Controlled::read(nif);
|
|
}
|
|
};
|
|
typedef Named NiSequenceStreamHelper;
|
|
|
|
} // Namespace
|
|
#endif
|