1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef BLADERUNNER_SET_H
#define BLADERUNNER_SET_H
#include "bladerunner/boundingbox.h"
#include "common/scummsys.h"
#include "common/str.h"
namespace BladeRunner {
class BladeRunnerEngine;
class VQADecoder;
class SetEffects;
class SceneObjects;
struct Object {
char _name[20];
BoundingBox _bbox;
uint8 _isObstacle;
uint8 _isClickable;
uint8 _isHotMouse;
uint8 _isTarget;
uint8 _unknown1;
};
struct Walkbox {
char _name[20];
float _altitude;
int _vertexCount;
Vector3 _vertices[8];
};
class Set {
#if _DEBUG
friend class BladeRunnerEngine;
#endif
BladeRunnerEngine *_vm;
bool _loaded;
int _objectCount;
int _walkboxCount;
Object *_objects;
Walkbox *_walkboxes;
int _walkboxStepSound[85];
int _footstepSoundOverride;
// float _unknown[10];
public:
SetEffects *_effects;
public:
Set(BladeRunnerEngine *vm);
~Set();
bool open(const Common::String &name);
void addObjectsToScene(SceneObjects *sceneObjects) const;
uint32 getObjectCount() const { return _objectCount; }
float getAltitudeAtXZ(float x, float z, bool *inWalkbox) const;
int findWalkbox(float x, float z) const;
int findObject(const char *objectName) const;
bool objectSetHotMouse(int objectId) const;
bool objectGetBoundingBox(int objectId, BoundingBox *boundingBox) const;
void objectSetIsClickable(int objectId, bool isClickable) const;
void objectSetIsObstacle(int objectId, bool isObstacle) const;
void objectSetIsTarget(int objectId, bool isTarget) const;
const char *objectGetName(int objectId) const;
void setWalkboxStepSound(int walkboxId, int soundId);
void setFoodstepSoundOverride(int soundId);
void resetFoodstepSoundOverride();
int getWalkboxSoundWalkLeft(int walkboxId);
int getWalkboxSoundWalkRight(int walkboxId);
int getWalkboxSoundRunLeft(int walkboxId);
int getWalkboxSoundRunRight(int walkboxId);
};
} // End of namespace BladeRunner
#endif
|