// Copyright (c) 2023 Alex Diener. All rights reserved. #ifndef __SharedDefinitions_H__ #define __SharedDefinitions_H__ #include #include #define TILE_WIDTH 16 #define TILE_HEIGHT 16 #define TILE_MAP_WIDTH 16 #define TILE_MAP_HEIGHT 12 #define DISPLAY_WIDTH (TILE_WIDTH * TILE_MAP_WIDTH) #define DISPLAY_HEIGHT (TILE_HEIGHT * TILE_MAP_HEIGHT) #define FRAME_INTERVAL (1.0 / 60.0) #define ANIMATION_FRAME_RATE 60.0 #define AUDIO_CATEGORY_SOUND 0 #define AUDIO_CATEGORY_MUSIC 1 #define AUDIO_CATEGORY_COUNT 2 #define AUDIO_MUSIC_LANE_COUNT 1 #define AUDIO_SOURCE_COUNT_MAX 64 #define AUDIO_STREAM_COUNT_MAX 8 #define AUDIO_DEFAULT_SAMPLE_RATE 48000 #define MENU_ACTION_ACCEPT 0 #define MENU_ACTION_CANCEL 1 #define MENU_ACTION_ALTERNATE 2 #define ACTION_WAIT 0 #define ACTION_INTERACT 1 #define DRAW_LAYER_FLOOR 0 #define DRAW_LAYER_ENTITY 1 #define DRAW_LAYER_WALL 2 #define PREFERENCES_FILE_NAME "PROJECT_NAME_preferences.json" #define PREFERENCES_LATEST_VERSION 1 #define SUPPORT_SUBDIRECTORY_NAME "PROJECT_NAME" typedef uint8_t FacingDirection; enum { FACING_NORTH = 0, FACING_EAST = 1, FACING_SOUTH = 2, FACING_WEST = 3 }; typedef enum ComponentType { COMPONENT_ATTACK, COMPONENT_COLLIDABLE, COMPONENT_FACING, COMPONENT_MOVEMENT, COMPONENT_PICKUP, COMPONENT_POSITION, COMPONENT_PUSHABLE, COMPONENT_PUSHER, COMPONENT_SPRITE, COMPONENT_STEERING } ComponentType; typedef enum AttackType { ATTACK_DESTROY_WALL = 0x1, ATTACK_OVERRIDE_COLLISION = 0x2, ATTACK_HURT_PLAYER = 0x4, ATTACK_HURT_ENEMY = 0x8 } AttackType; #endif