|
@@ -13,103 +13,104 @@ using namespace WalrusRPG::Graphics::Text;
|
|
|
|
|
|
|
|
void map_loop(unsigned x, unsigned y, Map &map)
|
|
void map_loop(unsigned x, unsigned y, Map &map)
|
|
|
{
|
|
{
|
|
|
- timer_mode(0, 0b0000010); // Free-running, no interrupts, divider = 1, 32 bit, wrapping
|
|
|
|
|
- timer_load(0, 0);
|
|
|
|
|
- unsigned loop_time = 546; // 32768Hz/60ups
|
|
|
|
|
- unsigned loop_next = -loop_time;
|
|
|
|
|
-
|
|
|
|
|
- unsigned keep_running = 1;
|
|
|
|
|
- Camera camera((signed)x, (signed)y);
|
|
|
|
|
-
|
|
|
|
|
- while (keep_running)
|
|
|
|
|
- {
|
|
|
|
|
- if (isKeyPressed(KEY_NSPIRE_ESC)) keep_running = 0;
|
|
|
|
|
-
|
|
|
|
|
- camera.update(0);
|
|
|
|
|
-
|
|
|
|
|
- // Frameskip
|
|
|
|
|
- if (timer_read(0) > loop_next)
|
|
|
|
|
- {
|
|
|
|
|
- Pixel pix(Green);
|
|
|
|
|
- // TODO?: Preset color macros/consts?
|
|
|
|
|
- buffer_fill(pix);
|
|
|
|
|
- map.render(camera, loop_next);
|
|
|
|
|
- print_string("WalrusRPG test build \001", 0, 0);
|
|
|
|
|
- lcd_vsync();
|
|
|
|
|
- buffer_swap();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // Frame limiting
|
|
|
|
|
- while (timer_read(0) > loop_next);
|
|
|
|
|
- loop_next -= loop_time;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ timer_mode(0, 0b0000010); // Free-running, no interrupts, divider = 1, 32 bit, wrapping
|
|
|
|
|
+ timer_load(0, 0);
|
|
|
|
|
+ unsigned loop_time = 546; // 32768Hz/60ups
|
|
|
|
|
+ unsigned loop_next = -loop_time;
|
|
|
|
|
+
|
|
|
|
|
+ unsigned keep_running = 1;
|
|
|
|
|
+ Camera camera((signed) x, (signed) y);
|
|
|
|
|
+
|
|
|
|
|
+ while (keep_running)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (isKeyPressed(KEY_NSPIRE_ESC))
|
|
|
|
|
+ keep_running = 0;
|
|
|
|
|
+
|
|
|
|
|
+ camera.update(0);
|
|
|
|
|
+
|
|
|
|
|
+ // Frameskip
|
|
|
|
|
+ if (timer_read(0) > loop_next)
|
|
|
|
|
+ {
|
|
|
|
|
+ Pixel pix(Green);
|
|
|
|
|
+ // TODO?: Preset color macros/consts?
|
|
|
|
|
+ buffer_fill(pix);
|
|
|
|
|
+ map.render(camera, loop_next);
|
|
|
|
|
+ print_string(
|
|
|
|
|
+ "WalrusRPG test build \001", 0, 0);
|
|
|
|
|
+ lcd_vsync();
|
|
|
|
|
+ buffer_swap();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Frame limiting
|
|
|
|
|
+ while (timer_read(0) > loop_next)
|
|
|
|
|
+ ;
|
|
|
|
|
+ loop_next -= loop_time;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
int main(int argc, char *argv[])
|
|
|
{
|
|
{
|
|
|
- UNUSED(argc);
|
|
|
|
|
- UNUSED(argv);
|
|
|
|
|
-
|
|
|
|
|
- buffer_allocate();
|
|
|
|
|
- timer_init(0);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- unsigned mapdata0[] =
|
|
|
|
|
- {
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- unsigned mapdata1[] =
|
|
|
|
|
- {
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 6, 0, 0, 4, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- Map map(15, 21, mapdata0, mapdata1);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- map_loop(0, 0, map);
|
|
|
|
|
-
|
|
|
|
|
- timer_restore(0);
|
|
|
|
|
- buffer_free();
|
|
|
|
|
- return 0;
|
|
|
|
|
|
|
+ UNUSED(argc);
|
|
|
|
|
+ UNUSED(argv);
|
|
|
|
|
+
|
|
|
|
|
+ buffer_allocate();
|
|
|
|
|
+ timer_init(0);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ unsigned mapdata0[] =
|
|
|
|
|
+ {
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
|
|
|
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
|
|
|
|
|
+
|
|
|
|
|
+ unsigned mapdata1[] =
|
|
|
|
|
+ {
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 6, 0, 0, 4, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
|
|
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
|
+
|
|
|
|
|
+ Map map(15, 21, mapdata0, mapdata1);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ map_loop(0, 0, map);
|
|
|
|
|
+
|
|
|
|
|
+ timer_restore(0);
|
|
|
|
|
+ buffer_free();
|
|
|
|
|
+ return 0;
|
|
|
}
|
|
}
|