[nostalgia/player] Split player application logic into separate files
This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
				
			|||||||
add_executable(
 | 
					add_executable(
 | 
				
			||||||
	nostalgia
 | 
						nostalgia
 | 
				
			||||||
 | 
							app.cpp
 | 
				
			||||||
		main.cpp
 | 
							main.cpp
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										50
									
								
								src/nostalgia/player/app.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/nostalgia/player/app.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright 2016 - 2021 gary@drinkingtea.net
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
				
			||||||
 | 
					 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
				
			||||||
 | 
					 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <nostalgia/core/core.hpp>
 | 
				
			||||||
 | 
					#include <nostalgia/core/input.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using namespace nostalgia;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static unsigned spriteX = 72;
 | 
				
			||||||
 | 
					static unsigned spriteY = 64;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int eventHandler(core::Context *ctx) {
 | 
				
			||||||
 | 
						if (core::buttonDown(core::GamePad_Right)) {
 | 
				
			||||||
 | 
							spriteX += 2;
 | 
				
			||||||
 | 
						} else if (core::buttonDown(core::GamePad_Left)) {
 | 
				
			||||||
 | 
							spriteX -= 2;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (core::buttonDown(core::GamePad_Down)) {
 | 
				
			||||||
 | 
							spriteY += 2;
 | 
				
			||||||
 | 
						} else if (core::buttonDown(core::GamePad_Up)) {
 | 
				
			||||||
 | 
							spriteY -= 2;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						constexpr auto s = "nostalgia";
 | 
				
			||||||
 | 
						for (unsigned i = 0; s[i]; ++i) {
 | 
				
			||||||
 | 
							const auto c = static_cast<unsigned>(s[i] - ('a' - 1));
 | 
				
			||||||
 | 
							core::setSprite(ctx, i, spriteX + 8 * (i + 1), spriteY, c);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return 16;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ox::Error run(ox::FileSystem *fs) {
 | 
				
			||||||
 | 
						core::Context ctx;
 | 
				
			||||||
 | 
						ctx.rom = fs;
 | 
				
			||||||
 | 
						oxReturnError(core::init(&ctx));
 | 
				
			||||||
 | 
						constexpr auto TileSheetAddr = "/TileSheets/Charset.ng";
 | 
				
			||||||
 | 
						constexpr auto PaletteAddr = "/Palettes/Charset.npal";
 | 
				
			||||||
 | 
						oxReturnError(core::loadSpriteTileSheet(&ctx, 0, TileSheetAddr, PaletteAddr));
 | 
				
			||||||
 | 
						oxReturnError(core::initConsole(&ctx));
 | 
				
			||||||
 | 
						core::puts(&ctx, 10, 9, "DOPENESS!!!");
 | 
				
			||||||
 | 
						core::setEventHandler(eventHandler);
 | 
				
			||||||
 | 
						oxReturnError(core::run(&ctx));
 | 
				
			||||||
 | 
						oxReturnError(core::shutdownGfx(&ctx));
 | 
				
			||||||
 | 
						return OxError(0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								src/nostalgia/player/app.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/nostalgia/player/app.hpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright 2016 - 2021 gary@drinkingtea.net
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This Source Code Form is subject to the terms of the Mozilla Public
 | 
				
			||||||
 | 
					 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
				
			||||||
 | 
					 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <ox/fs/fs.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ox::Error run(ox::FileSystem *fs);
 | 
				
			||||||
@@ -6,53 +6,13 @@
 | 
				
			|||||||
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
					 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <ox/fs/fs.hpp>
 | 
					 | 
				
			||||||
#include <ox/std/trace.hpp>
 | 
					#include <ox/std/trace.hpp>
 | 
				
			||||||
#include <nostalgia/core/core.hpp>
 | 
					#include <nostalgia/core/core.hpp>
 | 
				
			||||||
#include <nostalgia/core/input.hpp>
 | 
					
 | 
				
			||||||
 | 
					#include "app.hpp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace nostalgia;
 | 
					using namespace nostalgia;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned spriteX = 72;
 | 
					 | 
				
			||||||
static unsigned spriteY = 64;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int eventHandler(core::Context *ctx) {
 | 
					 | 
				
			||||||
	if (core::buttonDown(core::GamePad_Right)) {
 | 
					 | 
				
			||||||
		spriteX += 2;
 | 
					 | 
				
			||||||
	} else if (core::buttonDown(core::GamePad_Left)) {
 | 
					 | 
				
			||||||
		spriteX -= 2;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if (core::buttonDown(core::GamePad_Down)) {
 | 
					 | 
				
			||||||
		spriteY += 2;
 | 
					 | 
				
			||||||
	} else if (core::buttonDown(core::GamePad_Up)) {
 | 
					 | 
				
			||||||
		spriteY -= 2;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	constexpr auto s = "nostalgia";
 | 
					 | 
				
			||||||
	for (unsigned i = 0; s[i]; ++i) {
 | 
					 | 
				
			||||||
		const auto c = static_cast<unsigned>(s[i] - ('a' - 1));
 | 
					 | 
				
			||||||
		core::setSprite(ctx, i, spriteX + 8 * (i + 1), spriteY, c);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return 16;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static ox::Error run(ox::FileSystem *fs) {
 | 
					 | 
				
			||||||
	core::Context ctx;
 | 
					 | 
				
			||||||
	ctx.rom = fs;
 | 
					 | 
				
			||||||
	oxReturnError(core::init(&ctx));
 | 
					 | 
				
			||||||
	//Zone zone;
 | 
					 | 
				
			||||||
	//oxReturnError(zone.init(&ctx, Bounds{0, 0, 40, 40}, "/TileSheets/Charset.ng", "/Palettes/Charset.npal"));
 | 
					 | 
				
			||||||
	//zone.draw(&ctx);
 | 
					 | 
				
			||||||
	constexpr auto TileSheetAddr = "/TileSheets/Charset.ng";
 | 
					 | 
				
			||||||
	constexpr auto PaletteAddr = "/Palettes/Charset.npal";
 | 
					 | 
				
			||||||
	oxReturnError(core::loadSpriteTileSheet(&ctx, 0, TileSheetAddr, PaletteAddr));
 | 
					 | 
				
			||||||
	oxReturnError(core::initConsole(&ctx));
 | 
					 | 
				
			||||||
	core::puts(&ctx, 10, 9, "DOPENESS!!!");
 | 
					 | 
				
			||||||
	core::setEventHandler(eventHandler);
 | 
					 | 
				
			||||||
	oxReturnError(core::run(&ctx));
 | 
					 | 
				
			||||||
	oxReturnError(core::shutdownGfx(&ctx));
 | 
					 | 
				
			||||||
	return OxError(0);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int main(int argc, const char **argv) {
 | 
					int main(int argc, const char **argv) {
 | 
				
			||||||
	if (argc > 1) {
 | 
						if (argc > 1) {
 | 
				
			||||||
		ox::trace::init();
 | 
							ox::trace::init();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user