52SoundRenderObjLoaderClass _SoundRenderObjLoader;
60SoundRenderObjClass::SoundRenderObjClass (
void)
61 : Flags (FLAG_STOP_WHEN_HIDDEN),
74SoundRenderObjClass::SoundRenderObjClass (
const SoundRenderObjClass &src)
75 : Flags (FLAG_STOP_WHEN_HIDDEN),
89SoundRenderObjClass::~SoundRenderObjClass (
void)
95 Sound->Attach_To_Object (
NULL);
96 Sound->Remove_From_Scene ();
109const SoundRenderObjClass &
110SoundRenderObjClass::operator= (
const SoundRenderObjClass &src)
121 Set_Sound (&definition);
143 Sound->Remove_From_Scene ();
150 if (definition !=
NULL) {
164SoundRenderObjClass::On_Frame_Update (
void)
169 if ( Sound !=
NULL &&
170 Sound->Is_In_Scene () &&
171 Sound->Is_Playing () ==
false)
173 Sound->Attach_To_Object (
NULL);
174 Sound->Remove_From_Scene ();
187SoundRenderObjClass::Set_Hidden (
int onoff)
189 int before = Is_Not_Hidden_At_All ();
195 if (IsInitialized ==
false || Is_Not_Hidden_At_All () != before) {
196 IsInitialized =
true;
197 Update_On_Visibilty ();
210SoundRenderObjClass::Set_Visible (
int onoff)
212 int before = Is_Not_Hidden_At_All ();
218 if (IsInitialized ==
false || Is_Not_Hidden_At_All () != before) {
219 IsInitialized =
true;
220 Update_On_Visibilty ();
233SoundRenderObjClass::Set_Animation_Hidden (
int onoff)
235 int before = Is_Not_Hidden_At_All ();
241 if (IsInitialized ==
false || Is_Not_Hidden_At_All () != before) {
242 IsInitialized =
true;
243 Update_On_Visibilty ();
256SoundRenderObjClass::Set_Force_Visible (
int onoff)
258 int before = Is_Not_Hidden_At_All ();
264 if (IsInitialized ==
false || Is_Not_Hidden_At_All () != before) {
265 IsInitialized =
true;
266 Update_On_Visibilty ();
279SoundRenderObjClass::Update_On_Visibilty (
void)
288 Validate_Transform ();
295 if ( Is_Not_Hidden_At_All () &&
296 Sound->Is_In_Scene () ==
false &&
297 Peek_Scene () !=
NULL)
303 Sound->Attach_To_Object (
this);
304 Sound->Add_To_Scene (
true);
306 }
else if ((Is_Not_Hidden_At_All () ==
false) || (Peek_Scene () ==
NULL)) {
311 if ((Flags & FLAG_STOP_WHEN_HIDDEN) != 0 || (Peek_Scene () ==
NULL)) {
312 Sound->Attach_To_Object (
NULL);
313 Sound->Remove_From_Scene ();
327SoundRenderObjClass::Get_Sound (
void)
const
343SoundRenderObjClass::Set_Flag (
uint32 flag,
bool onoff)
360SoundRenderObjClass::Notify_Added (
SceneClass *scene)
365 Update_On_Visibilty ();
376SoundRenderObjClass::Notify_Removed (
SceneClass *scene)
381 Update_On_Visibilty ();
392SoundRenderObjClass::Set_Transform (
const Matrix3D &tm)
396 if (IsInitialized ==
false) {
397 IsInitialized =
true;
398 Update_On_Visibilty ();
411SoundRenderObjClass::Set_Position (
const Vector3 &pos)
415 if (IsInitialized ==
false) {
416 IsInitialized =
true;
417 Update_On_Visibilty ();
436SoundRenderObjDefClass::SoundRenderObjDefClass (
void)
438 Flags (SoundRenderObjClass::FLAG_STOP_WHEN_HIDDEN)
449SoundRenderObjDefClass::SoundRenderObjDefClass (SoundRenderObjClass &render_obj)
451 Flags (SoundRenderObjClass::FLAG_STOP_WHEN_HIDDEN)
453 Initialize (render_obj);
463SoundRenderObjDefClass::SoundRenderObjDefClass (
const SoundRenderObjDefClass &src)
465 Flags (SoundRenderObjClass::FLAG_STOP_WHEN_HIDDEN)
477SoundRenderObjDefClass::~SoundRenderObjDefClass (
void)
488const SoundRenderObjDefClass &
489SoundRenderObjDefClass::operator= (
const SoundRenderObjDefClass &src)
491 Definition = src.Definition;
504SoundRenderObjDefClass::Create (
void)
509 SoundRenderObjClass *render_obj =
W3DNEW SoundRenderObjClass;
510 render_obj->Set_Name (Name);
511 render_obj->Set_Sound (&Definition);
512 render_obj->Set_Flags (Flags);
524SoundRenderObjDefClass::Initialize (SoundRenderObjClass &render_obj)
529 Definition.Initialize_From_Sound (render_obj.Peek_Sound ());
534 Flags = (SoundRenderObjClass::FLAGS)render_obj.Get_Flags ();
539 Name = render_obj.Get_Name ();
618 if (cload.
Read (&header, sizeof (header)) ==
sizeof (header)) {
625 Flags = (SoundRenderObjClass::FLAGS)header.
Flags;
655 if (Definition.Load (cload)) {
686 header.
Flags = Flags;
687 ::lstrcpyn (header.
Name, (
const char *)Name, sizeof (header.
Name));
688 header.
Name[
sizeof (header.
Name) - 1] = 0;
693 if (csave.
Write (&header, sizeof (header)) ==
sizeof (header)) {
719 if (Definition.Save (csave)) {
744 SoundRenderObjPrototypeClass *prototype =
NULL;
749 SoundRenderObjDefClass *definition =
W3DNEW SoundRenderObjDefClass;
750 if (definition !=
NULL) {
760 prototype =
W3DNEW SoundRenderObjPrototypeClass (definition);
#define W3D_CURRENT_AGGREGATE_VERSION
#define W3D_CURRENT_SOUNDROBJ_VERSION
@ W3D_CHUNK_SOUNDROBJ_DEFINITION
@ W3D_CHUNK_SOUNDROBJ_HEADER
virtual PersistClass * Create(void) const
virtual void Initialize_From_Sound(AudibleSoundClass *sound)
uint32 Read(void *buf, uint32 nbytes)
uint32 Write(const void *buf, uint32 nbytes)
bool Begin_Chunk(uint32 id)
virtual void Set_Transform(const Matrix3D &m)
virtual void Set_Visible(int onoff)
virtual void Set_Position(const Vector3 &v)
virtual void Notify_Added(SceneClass *scene)
virtual void Set_Hidden(int onoff)
virtual void Set_Force_Visible(int onoff)
virtual void Notify_Removed(SceneClass *scene)
virtual void Set_Animation_Hidden(int onoff)
virtual void Register(RenderObjClass *obj, RegType for_what)=0
virtual void Unregister(RenderObjClass *obj, RegType for_what)=0
#define REF_PTR_RELEASE(x)