summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp67
1 files changed, 28 insertions, 39 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 3876db0..34cbcb4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -14,15 +14,10 @@
* limitations under the License.
*/
-#ifdef DEBUG
-#include <iostream>
-#endif
-
#include "camera.hpp"
#include "candy_gear.hpp"
#include "core.hpp"
#include "key.hpp"
-#include "log.hpp"
#include "model.hpp"
#include "model/instance.hpp"
#include "sound.hpp"
@@ -44,7 +39,6 @@ int main(int argc, char *argv[])
// Random numbers
random_number_generator.seed(random_seed());
- mrb_state *mrb = mrb_open();
mrb_value main_obj;
mrb_sym sym_init, sym_key_down, sym_key_up, sym_quit, sym_tick;
FILE *fp;
@@ -54,39 +48,35 @@ int main(int argc, char *argv[])
try{ cg_sCore::loader.execute(nullptr); }
catch(const CommandError &error)
{
-#ifdef DEBUG
- std::cout << error.what() << std::endl;
-#endif
+ cg_core.log.message(Log::Level::Fatal, error.what());
return 1;
}
- if (!mrb) { /* handle error */ }
- mrb_define_module(mrb, "CandyGear");
- cg_camera_init(mrb);
- cg_candy_gear_init(mrb);
- cg_key_init(mrb);
- cg_log_init(mrb);
- cg_model_init(mrb);
- cg_model_instance_init(mrb);
- cg_sound_init(mrb);
- cg_texture_init(mrb);
-
- main_obj = mrb_obj_iv_inspect(mrb, mrb->top_self);
- sym_init = mrb_intern_cstr(mrb, "init");
- sym_key_down = mrb_intern_cstr(mrb, "key_down");
- sym_key_up = mrb_intern_cstr(mrb, "key_up");
- sym_quit = mrb_intern_cstr(mrb, "quit");
- sym_tick = mrb_intern_cstr(mrb, "tick");
+ mrb_define_module(cg_core.mrb, "CandyGear");
+ cg_camera_init(cg_core.mrb);
+ cg_candy_gear_init(cg_core.mrb);
+ cg_key_init(cg_core.mrb);
+ cg_model_init(cg_core.mrb);
+ cg_model_instance_init(cg_core.mrb);
+ cg_sound_init(cg_core.mrb);
+ cg_texture_init(cg_core.mrb);
+
+ main_obj = mrb_obj_iv_inspect(cg_core.mrb, cg_core.mrb->top_self);
+ sym_init = mrb_intern_cstr(cg_core.mrb, "init");
+ sym_key_down = mrb_intern_cstr(cg_core.mrb, "key_down");
+ sym_key_up = mrb_intern_cstr(cg_core.mrb, "key_up");
+ sym_quit = mrb_intern_cstr(cg_core.mrb, "quit");
+ sym_tick = mrb_intern_cstr(cg_core.mrb, "tick");
fp = fopen(argv[2], "r");
- mrb_load_irep_file(mrb, fp);
+ mrb_load_irep_file(cg_core.mrb, fp);
fclose(fp);
- if (mrb->exc)
- handle_error(mrb);
+ if (cg_core.mrb->exc)
+ handle_error(cg_core.mrb);
else
{
- mrb_funcall_id(mrb, main_obj, sym_init, 0);
- if (mrb->exc) handle_error(mrb);
+ mrb_funcall_id(cg_core.mrb, main_obj, sym_init, 0);
+ if (cg_core.mrb->exc) handle_error(cg_core.mrb);
}
frame_start = SDL_GetTicks();
@@ -101,13 +91,13 @@ int main(int argc, char *argv[])
{
case SDL_KEYDOWN:
mrb_funcall_id(
- mrb, main_obj, sym_key_down, 1,
- mrb_int_value(mrb, event.key.keysym.sym));
+ cg_core.mrb, main_obj, sym_key_down, 1,
+ mrb_int_value(cg_core.mrb, event.key.keysym.sym));
break;
case SDL_KEYUP:
mrb_funcall_id(
- mrb, main_obj, sym_key_up, 1,
- mrb_int_value(mrb, event.key.keysym.sym));
+ cg_core.mrb, main_obj, sym_key_up, 1,
+ mrb_int_value(cg_core.mrb, event.key.keysym.sym));
break;
case SDL_MOUSEMOTION:
break;
@@ -116,13 +106,13 @@ int main(int argc, char *argv[])
case SDL_MOUSEBUTTONUP:
break;
case SDL_QUIT:
- mrb_funcall_id(mrb, main_obj, sym_quit, 0);
+ mrb_funcall_id(cg_core.mrb, main_obj, sym_quit, 0);
break;
}
}
- mrb_funcall_id(mrb, main_obj, sym_tick, 0);
- if (mrb->exc) handle_error(mrb);
+ mrb_funcall_id(cg_core.mrb, main_obj, sym_tick, 0);
+ if (cg_core.mrb->exc) handle_error(cg_core.mrb);
cg_core.vk_graphics_pipeline->draw();
@@ -141,7 +131,6 @@ int main(int argc, char *argv[])
}
}
- mrb_close(mrb);
cg_sCore::loader.revert(nullptr);
return 0;