Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-11-23 12:34:07 +0000
committerStijn Buys <ingar@osirion.org>2008-11-23 12:34:07 +0000
commit583ec3285c41e9d253c4aaabd2af4dadac75f3a7 (patch)
tree5ec345e44af9d3699a95f493d8358ee766e23330 /src/client
parent44158ccfbe943b832c0e0bf9ce547212aa6c2b8b (diff)
clean module consturction/destruction
Diffstat (limited to 'src/client')
-rw-r--r--src/client/client.cc17
-rw-r--r--src/client/soundext.cc8
-rw-r--r--src/client/targets.cc14
3 files changed, 26 insertions, 13 deletions
diff --git a/src/client/client.cc b/src/client/client.cc
index 061f29b..650813c 100644
--- a/src/client/client.cc
+++ b/src/client/client.cc
@@ -17,6 +17,7 @@
#include "client/input.h"
#include "client/view.h"
#include "core/core.h"
+#include "core/loader.h"
#include "core/zone.h"
#include "render/render.h"
#include "ui/ui.h"
@@ -167,15 +168,21 @@ void Client::run()
void Client::frame(unsigned long timestamp)
{
+ input::frame();
+
core::Application::frame(timestamp);
- if (!core::application()->connected()) {
+ if (!connected()) {
+ std::string module_label(core::Loader::label());
+
// load the intro if nothing is running
- if (core::application()->load("intro")) {
- core::application()->connect("");
+ if (load("intro")) {
+ connect("");
+ if (module_label.size())
+ load(module_label);
}
// show the console if everything fails
- if (!core::application()->connected() && !ui::console()->visible()) {
+ if (!connected() && !ui::console()->visible()) {
ui::console()->toggle();
}
} else if (!ui::root()->active()) {
@@ -207,7 +214,7 @@ void Client::frame(unsigned long timestamp)
}
video::frame((float)(timestamp - previous_timestamp) / 1000.0f);
- input::frame();
+
previous_timestamp = timestamp;
}
diff --git a/src/client/soundext.cc b/src/client/soundext.cc
index 421575d..9b15597 100644
--- a/src/client/soundext.cc
+++ b/src/client/soundext.cc
@@ -134,11 +134,15 @@ void SoundExt::frame(float elapsed)
}
+ float x = entity->radius();
+ if (entity->model())
+ x = entity->model()->maxbbox().x;
+
audio::update_source(state_engineloopsource,
- entity->location() - entity->axis().forward() * entity->model()->maxbbox().x , entity->axis().forward() * speed, pitch, gain);
+ entity->location() - entity->axis().forward() * x , entity->axis().forward() * speed, pitch, gain);
audio::update_source(state_engineeventsource,
- entity->location() - entity->axis().forward() * entity->model()->maxbbox().x , entity->axis().forward() * speed);
+ entity->location() - entity->axis().forward() * x , entity->axis().forward() * speed);
}
diff --git a/src/client/targets.cc b/src/client/targets.cc
index 3ccea8a..c544e73 100644
--- a/src/client/targets.cc
+++ b/src/client/targets.cc
@@ -45,6 +45,8 @@ bool is_legal_target(core::Entity *entity)
{
if (entity->serverside()) {
return false;
+ } else if (!ext_render(entity)) {
+ return false;
} else if (entity == core::localplayer()->mission_target()) {
return true;
} else if (entity == core::localcontrol()) {
@@ -307,17 +309,17 @@ void render_entity_sound(core::Entity *entity)
return;
}
- if (!ext_render(entity) || !ext_render(entity)->visible()) {
+ if (!ext_render(entity) || (ext_render(entity) && !ext_render(entity)->visible())) {
if (ext_sound(entity))
delete ext_sound(entity);
return;
- }
+ } else {
+ if (!ext_sound(entity)) {
+ new SoundExt(entity);
+ }
- if (!ext_sound(entity)) {
- new SoundExt(entity);
+ ext_sound(entity)->frame(0.0f);
}
-
- entity->extension((size_t) core::Extension::Sound)->frame(0.0f);
}