2016-02-13 19:05:59 +00:00
|
|
|
#ifndef __PSHAG_CCOLLISIONRESPONSEDATA_HPP__
|
|
|
|
#define __PSHAG_CCOLLISIONRESPONSEDATA_HPP__
|
|
|
|
|
|
|
|
#include "RetroTypes.hpp"
|
|
|
|
#include "IObj.hpp"
|
|
|
|
#include "CToken.hpp"
|
|
|
|
#include "IOStreams.hpp"
|
|
|
|
|
|
|
|
namespace pshag
|
|
|
|
{
|
|
|
|
class CSimplePool;
|
2016-02-16 07:01:55 +00:00
|
|
|
class CGenDescription;
|
|
|
|
class CDecalDescription;
|
|
|
|
|
|
|
|
enum class EWeaponCollisionResponseTypes
|
|
|
|
{
|
|
|
|
Unknown0, Unknown1, Unknown2, Unknown3, Unknown4,
|
|
|
|
Unknown5, Unknown6, Unknown7, Unknown8, Unknown9,
|
|
|
|
Unknown10,Unknown11,Unknown12,Unknown13,Unknown14,
|
|
|
|
Unknown15,Unknown16,Unknown17,Unknown18,Unknown19,
|
|
|
|
Unknown20,Unknown21,Unknown22,Unknown23,Unknown24,
|
|
|
|
Unknown25,Unknown26,Unknown27,Unknown28,Unknown29,
|
|
|
|
Unknown30,Unknown31,Unknown32,Unknown33,Unknown34,
|
|
|
|
Unknown35,Unknown36,Unknown37,Unknown38,Unknown39,
|
|
|
|
Unknown40,Unknown41,Unknown42,Unknown43,Unknown44,
|
|
|
|
Unknown45,Unknown46,Unknown47,Unknown48,Unknown49,
|
|
|
|
Unknown50,Unknown51,Unknown52,Unknown53,Unknown54,
|
|
|
|
Unknown55,Unknown56,Unknown57,Unknown58,Unknown59,
|
|
|
|
Unknown60,Unknown61,Unknown62,Unknown63,Unknown64,
|
|
|
|
Unknown65,Unknown66,Unknown67,Unknown68,Unknown69,
|
|
|
|
Unknown70,Unknown71,Unknown72,Unknown73,Unknown74,
|
|
|
|
Unknown75,Unknown76,Unknown77,Unknown78,Unknown79,
|
|
|
|
Unknown80,Unknown81,Unknown82,Unknown83,Unknown84,
|
|
|
|
Unknown85,Unknown86,Unknown87,Unknown88,Unknown89,
|
|
|
|
Unknown90,Unknown91,Unknown92,Unknown93
|
|
|
|
};
|
2016-02-13 19:05:59 +00:00
|
|
|
|
|
|
|
class CCollisionResponseData
|
|
|
|
{
|
2016-02-16 07:01:55 +00:00
|
|
|
|
2016-02-17 09:08:38 +00:00
|
|
|
std::vector<std::pair<TLockedToken<CGenDescription>, bool>> x0;
|
2016-02-16 07:01:55 +00:00
|
|
|
std::vector<s32> x10;
|
2016-02-17 09:08:38 +00:00
|
|
|
std::vector<std::pair<TLockedToken<CDecalDescription>, bool>> x20;
|
2016-02-16 07:01:55 +00:00
|
|
|
float x30_RNGE;
|
|
|
|
float x34_FOFF;
|
|
|
|
|
|
|
|
void AddParticleSystemToResponse(EWeaponCollisionResponseTypes type, CInputStream& in, CSimplePool* resPool);
|
|
|
|
bool CheckAndAddDecalToResponse(FourCC clsId, CInputStream& in, CSimplePool* resPool);
|
|
|
|
bool CheckAndAddSoundFXToResponse(FourCC clsId, CInputStream& in);
|
|
|
|
bool CheckAndAddParticleSystemToResponse(FourCC clsId, CInputStream& in, CSimplePool* resPool);
|
|
|
|
bool CheckAndAddResourceToResponse(FourCC clsId, CInputStream& in, CSimplePool* resPool);
|
2016-02-13 19:05:59 +00:00
|
|
|
public:
|
|
|
|
CCollisionResponseData(CInputStream& in, CSimplePool* resPool);
|
|
|
|
};
|
|
|
|
|
|
|
|
std::unique_ptr<IObj> FCollisionResponseDataFactory(const SObjectTag& tag, CInputStream& in, const CVParamTransfer& vparms);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __PSHAG_CCOLLISIONRESPONSEDATA_HPP__
|