mirror of
https://github.com/SaffronCR/msx-rpg.git
synced 2026-07-08 18:06:16 +00:00
Work in character screen.
Code cleaned.
This commit is contained in:
Binary file not shown.
Binary file not shown.
BIN
art/aseprite/menu_background.aseprite
Normal file
BIN
art/aseprite/menu_background.aseprite
Normal file
Binary file not shown.
14
build.bat
14
build.bat
@@ -40,10 +40,12 @@ cd ..\..
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\startscr.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\charcreation.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\intro.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\character.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\createpcscr.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\menu.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\procgen.c
|
||||
@@ -52,17 +54,17 @@ SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 -
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\encounter.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\font.c
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\fnt.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\gfx.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\snd.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\rnd.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\system.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% -c src\random.c
|
||||
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% src\main.c startscr.rel charcreation.rel intro.rel menu.rel procgen.rel ingame.rel encounter.rel font.rel gfx.rel snd.rel system.rel random.rel src\audio\audio.rel
|
||||
SDCC --code-loc %ADDR_CODE% --data-loc %ADDR_DATA% --disable-warning 196 -mz80 --no-std-crt0 --opt-code-size fusion.lib -L %LIBDIR% %INC1% %INC2% %INC3% %INC4% %INC5% %INC6% %INC7% %INC8% %INC9% %INCA% %INCB% %INCC% %INCD% %INCE% %INCF% src\main.c startscr.rel intro.rel character.rel createpcscr.rel menu.rel procgen.rel ingame.rel encounter.rel fnt.rel gfx.rel snd.rel rnd.rel system.rel src\audio\audio.rel
|
||||
|
||||
SET cpath=%~dp0
|
||||
|
||||
|
||||
BIN
dsk/srangers.com
BIN
dsk/srangers.com
Binary file not shown.
12
src/character.c
Normal file
12
src/character.c
Normal file
@@ -0,0 +1,12 @@
|
||||
//------------------------------------------------------------------
|
||||
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "fusion-c/header/msx_fusion.h"
|
||||
|
||||
#include "main.h"
|
||||
#include "character.h"
|
||||
12
src/character.h
Normal file
12
src/character.h
Normal file
@@ -0,0 +1,12 @@
|
||||
//------------------------------------------------------------------
|
||||
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#ifndef CHARACTER_H
|
||||
#define CHARACTER_H
|
||||
|
||||
#include "main.h"
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
@@ -9,10 +9,10 @@
|
||||
#include "fusion-c/header/msx_fusion.h"
|
||||
|
||||
#include "main.h"
|
||||
#include "font.h"
|
||||
#include "fnt.h"
|
||||
#include "gfx.h"
|
||||
#include "ingame.h" // #WIP needed for draw portraits defines
|
||||
#include "charcreation.h"
|
||||
#include "createpcscr.h"
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Functions.
|
||||
@@ -2,8 +2,8 @@
|
||||
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#ifndef CHARCREATION_H
|
||||
#define CHARCREATION_H
|
||||
#ifndef CREATEPCSCR_H
|
||||
#define CREATEPCSCR_H
|
||||
|
||||
#include "main.h"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#define ENCOUNTER_ARRAY_SIZE 256
|
||||
#define DEFAULT_ENCOUNTER_THRESHOLD 10
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Variables.
|
||||
@@ -50,7 +51,7 @@ uchar current_threshold;
|
||||
void sr_init_encounter(void)
|
||||
{
|
||||
current_step = 0;
|
||||
current_threshold = 10;
|
||||
current_threshold = DEFAULT_ENCOUNTER_THRESHOLD;
|
||||
}
|
||||
|
||||
void sr_encounter_step(void)
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
#include "main.h"
|
||||
#include "gfx.h"
|
||||
#include "font.h"
|
||||
#include "fnt.h"
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Defines.
|
||||
//------------------------------------------------------------------
|
||||
|
||||
// Font graphics offset.
|
||||
// Font images offset.
|
||||
|
||||
#define FONT_OFFSET_X 0
|
||||
#define FONT_OFFSET_Y 44
|
||||
@@ -178,6 +178,8 @@
|
||||
#define MINUS_Y 172
|
||||
#define SLASH_X 120
|
||||
#define SLASH_Y 172
|
||||
#define COLON_X 88
|
||||
#define COLON_Y 188
|
||||
|
||||
// Textbox.
|
||||
|
||||
@@ -287,6 +289,7 @@ void sr_draw_char(uchar character, uint x, uint y, uchar log_op)
|
||||
case '+': sr_draw_char_src_to_dst(PLUS_X, PLUS_Y, x, y, log_op); break;
|
||||
case '-': sr_draw_char_src_to_dst(MINUS_X, MINUS_Y, x, y, log_op); break;
|
||||
case '/': sr_draw_char_src_to_dst(SLASH_X, SLASH_Y, x, y, log_op); break;
|
||||
case ':': sr_draw_char_src_to_dst(COLON_X, COLON_Y, x, y, log_op); break;
|
||||
|
||||
case '<': sr_draw_char_src_to_dst(TXTBOX_UP_L_X, TXTBOX_UP_L_Y, x, y, log_op); break;
|
||||
case '[': sr_draw_char_src_to_dst(TXTBOX_DWN_L_X, TXTBOX_DWN_L_Y, x, y, log_op); break;
|
||||
@@ -308,13 +311,13 @@ void sr_draw_text(uchar *text, uint x, uint y, uchar text_color, uchar border_co
|
||||
if (border_color != 0)
|
||||
{
|
||||
// Color border.
|
||||
LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, border_color, LOGICAL_IMP);
|
||||
LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, border_color, LOGICAL_IMP);
|
||||
sr_draw_char(*text, x, y, LOGICAL_TIMP);
|
||||
|
||||
// Only for color text.
|
||||
if (text_color != 0)
|
||||
{
|
||||
LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, 15-text_color, LOGICAL_IMP);
|
||||
LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, 15 - text_color, LOGICAL_IMP);
|
||||
sr_draw_char(*text, x, y, LOGICAL_XOR);
|
||||
sr_draw_char(*text, x, y, LOGICAL_AND);
|
||||
}
|
||||
@@ -327,7 +330,7 @@ void sr_draw_text(uchar *text, uint x, uint y, uchar text_color, uchar border_co
|
||||
// Only for color text.
|
||||
if (text_color != 0)
|
||||
{
|
||||
LMMV(x, y + sr_get_active_page() * 256, FONT_SIZE, FONT_SIZE, 15-text_color, LOGICAL_IMP);
|
||||
LMMV(x, y + sr_get_active_page() * PAGE_HEIGHT, FONT_SIZE, FONT_SIZE, 15 - text_color, LOGICAL_IMP);
|
||||
sr_draw_char(*text, x, y, LOGICAL_XOR);
|
||||
sr_draw_char(*text, x, y, LOGICAL_AND);
|
||||
}
|
||||
@@ -2,8 +2,8 @@
|
||||
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#ifndef FONT_H
|
||||
#define FONT_H
|
||||
#ifndef FNT_H
|
||||
#define FNT_H
|
||||
|
||||
#include "main.h"
|
||||
|
||||
18
src/gfx.c
18
src/gfx.c
@@ -126,7 +126,7 @@ bool sr_load_sf5_image(uchar *file_name, uint initial_y_pos)
|
||||
while (read != 0)
|
||||
{
|
||||
// Set border color based on a 'random' position from the load buffer.
|
||||
SetColors(15, 0, load_buffer[69]);
|
||||
SetColors(0, 0, load_buffer[69]);
|
||||
|
||||
// Read file and write to load buffer.
|
||||
read = fcb_read(&file, load_buffer, BUFFER_SIZE);
|
||||
@@ -174,7 +174,7 @@ bool sr_load_sc8_image(uchar *file_name, uint initial_y_pos)
|
||||
while (read != 0)
|
||||
{
|
||||
// Set border color based on a 'random' position from the load buffer.
|
||||
SetColors(15, 0, load_buffer[69]);
|
||||
SetColors(0, 0, load_buffer[69]);
|
||||
|
||||
// Read file and write to load buffer.
|
||||
read = fcb_read(&file, load_buffer, BUFFER_SIZE);
|
||||
@@ -245,12 +245,12 @@ void sr_page_copy_mode(uint src_x, uint src_y, uint width, uint height, uint dst
|
||||
fLMMM(&t);
|
||||
}
|
||||
|
||||
void sr_draw_rectangle(uint x, uint y, uint width, uint height, char color)
|
||||
void sr_draw_rectangle(uint x, uint y, uint width, uint height, uchar color)
|
||||
{
|
||||
LMMV(x, y, width, height, color, 0);
|
||||
}
|
||||
|
||||
void sr_draw_pixel(uint x, uint y, char color)
|
||||
void sr_draw_pixel(uint x, uint y, uchar color)
|
||||
{
|
||||
Pset(x, y, color, 0);
|
||||
}
|
||||
@@ -260,7 +260,7 @@ void sr_debug_draw_palette(void)
|
||||
uint x = 0;
|
||||
uint y = 0;
|
||||
|
||||
for (uint i = 0; i < 16; i++)
|
||||
for (uint i = 0; i < PALETTE_SIZE; i++)
|
||||
{
|
||||
LMMV(x, y + sr_get_active_page() * PAGE_WIDTH, 8, 8, i, 0);
|
||||
y += 9;
|
||||
@@ -309,11 +309,11 @@ void sr_init_gfx(void)
|
||||
// Set game palette.
|
||||
sr_init_palette();
|
||||
|
||||
// Set loading text.
|
||||
sr_set_loading_text();
|
||||
// Set loading.
|
||||
sr_set_display_loading();
|
||||
|
||||
// Load images.
|
||||
sr_load_sf5_image("P2.SF5", PAGE_HEIGHT * SPRITES_PAGE); // TODO: Move all the load images to gfx and handle it with an enum and single load function that checks what's already loaded.
|
||||
// Load images (need to load this here for the font images).
|
||||
sr_load_sf5_image("P2.SF5", PAGE_HEIGHT * IMAGES_PAGE);
|
||||
|
||||
// Reset current screen.
|
||||
Cls();
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
#define HARDWARE_SPRITE_SIZE 8
|
||||
|
||||
#define PALETTE_SIZE 16
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Enums.
|
||||
//------------------------------------------------------------------
|
||||
|
||||
73
src/ingame.c
73
src/ingame.c
@@ -273,7 +273,7 @@ void sr_draw_fp_view(void)
|
||||
sr_page_copy_fast(BG_UNDERGROUND_CEILING_X, BG_UNDERGROUND_CEILING_Y,
|
||||
BG_UNDERGROUND_CEILING_SIZE_X, BG_UNDERGROUND_CEILING_SIZE_Y,
|
||||
LEVEL_SCREEN_X, 0,
|
||||
SPRITES_PAGE, BACKBUFFER_PAGE);
|
||||
IMAGES_PAGE, BACKBUFFER_PAGE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -281,7 +281,7 @@ void sr_draw_fp_view(void)
|
||||
sr_page_copy_fast(BG_SURFACE_CEILING_X, BG_SURFACE_CEILING_Y,
|
||||
BG_SURFACE_CEILING_SIZE_X, BG_SURFACE_CEILING_SIZE_Y,
|
||||
LEVEL_SCREEN_X, 0,
|
||||
SPRITES_PAGE, BACKBUFFER_PAGE);
|
||||
IMAGES_PAGE, BACKBUFFER_PAGE);
|
||||
}
|
||||
|
||||
// Floor.
|
||||
@@ -291,7 +291,7 @@ void sr_draw_fp_view(void)
|
||||
sr_page_copy_fast(BG_FLOOR_X, BG_FLOOR_Y,
|
||||
BG_FLOOR_SIZE_X, BG_FLOOR_SIZE_Y,
|
||||
BG_FLOOR_DST_X, BG_FLOOR_DST_Y,
|
||||
SPRITES_PAGE, BACKBUFFER_PAGE);
|
||||
IMAGES_PAGE, BACKBUFFER_PAGE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -299,13 +299,13 @@ void sr_draw_fp_view(void)
|
||||
sr_page_copy_fast(BG_FLOOR_X, BG_FLOOR_Y,
|
||||
BG_FLOOR_SIZE_X, BG_ALT_FLOOR_SIZE_Y_1,
|
||||
BG_FLOOR_DST_X, BG_ALT_FLOOR_DST_Y_1,
|
||||
SPRITES_PAGE, BACKBUFFER_PAGE);
|
||||
IMAGES_PAGE, BACKBUFFER_PAGE);
|
||||
|
||||
// Draw alternate floor.
|
||||
sr_page_copy_fast(BG_ALT_FLOOR_X, BG_ALT_FLOOR_Y,
|
||||
BG_FLOOR_SIZE_X, BG_ALT_FLOOR_SIZE_Y_2,
|
||||
BG_FLOOR_DST_X, BG_ALT_FLOOR_DST_Y_2,
|
||||
SPRITES_PAGE, BACKBUFFER_PAGE);
|
||||
IMAGES_PAGE, BACKBUFFER_PAGE);
|
||||
}
|
||||
|
||||
// Front walls.
|
||||
@@ -554,7 +554,7 @@ void sr_draw_tiles_screen_background(void)
|
||||
sr_page_copy_fast(232, 188,
|
||||
24, 24,
|
||||
x * 24, y * 24,
|
||||
SPRITES_PAGE, sr_get_active_page());
|
||||
IMAGES_PAGE, sr_get_active_page());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -569,37 +569,37 @@ void sr_draw_portraits(void)
|
||||
sr_set_drawing_state(BEGIN);
|
||||
|
||||
// Names.
|
||||
sr_draw_text("E.Ilba", PORTRAIT_1_NAME_X, PORTRAIT_1_NAME_Y, 15, 0);
|
||||
sr_draw_text("Lisbeth", PORTRAIT_2_NAME_X, PORTRAIT_2_NAME_Y, 15, 0);
|
||||
sr_draw_text("Krevar", PORTRAIT_3_NAME_X, PORTRAIT_3_NAME_Y, 15, 0);
|
||||
sr_draw_text("Echo", PORTRAIT_4_NAME_X, PORTRAIT_4_NAME_Y, 15, 0);
|
||||
sr_draw_text("E.Ilba", PORTRAIT_1_NAME_X, PORTRAIT_1_NAME_Y, PORTRAIT_NAME_COLOR, 0);
|
||||
sr_draw_text("Lisbeth", PORTRAIT_2_NAME_X, PORTRAIT_2_NAME_Y, PORTRAIT_NAME_COLOR, 0);
|
||||
sr_draw_text("Krevar", PORTRAIT_3_NAME_X, PORTRAIT_3_NAME_Y, PORTRAIT_NAME_COLOR, 0);
|
||||
sr_draw_text("Echo", PORTRAIT_4_NAME_X, PORTRAIT_4_NAME_Y, PORTRAIT_NAME_COLOR, 0);
|
||||
|
||||
// Portraits.
|
||||
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y,
|
||||
PORTRAIT_SIZE, PORTRAIT_SIZE,
|
||||
PORTRAIT_1_X, PORTRAIT_1_Y,
|
||||
SPRITES_PAGE, sr_get_active_page());
|
||||
IMAGES_PAGE, sr_get_active_page());
|
||||
|
||||
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE,
|
||||
PORTRAIT_SIZE, PORTRAIT_SIZE,
|
||||
PORTRAIT_2_X, PORTRAIT_2_Y,
|
||||
SPRITES_PAGE, sr_get_active_page());
|
||||
IMAGES_PAGE, sr_get_active_page());
|
||||
|
||||
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE + PORTRAIT_SIZE,
|
||||
PORTRAIT_SIZE, PORTRAIT_SIZE,
|
||||
PORTRAIT_3_X, PORTRAIT_3_Y,
|
||||
SPRITES_PAGE, sr_get_active_page());
|
||||
IMAGES_PAGE, sr_get_active_page());
|
||||
|
||||
sr_page_copy_fast(PORTRAIT_SRC_X, PORTRAIT_SRC_Y + PORTRAIT_SIZE + PORTRAIT_SIZE + PORTRAIT_SIZE,
|
||||
PORTRAIT_SIZE, PORTRAIT_SIZE,
|
||||
PORTRAIT_4_X, PORTRAIT_4_Y,
|
||||
SPRITES_PAGE, sr_get_active_page());
|
||||
IMAGES_PAGE, sr_get_active_page());
|
||||
|
||||
// HP text.
|
||||
sr_draw_text("10/12", PORTRAIT_1_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_1_NAME_Y + 8, 15, 0);
|
||||
sr_draw_text("8/8", PORTRAIT_2_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_2_NAME_Y + 8, 15, 0);
|
||||
sr_draw_text("7/7", PORTRAIT_3_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_3_NAME_Y + 8, 15, 0);
|
||||
sr_draw_text("9/9", PORTRAIT_4_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_4_NAME_Y + 8, 15, 0);
|
||||
sr_draw_text("10/12", PORTRAIT_1_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_1_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
|
||||
sr_draw_text("8/8", PORTRAIT_2_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_2_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
|
||||
sr_draw_text("7/7", PORTRAIT_3_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_3_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
|
||||
sr_draw_text("9/9", PORTRAIT_4_NAME_X + PORTRAIT_SIZE + 1, PORTRAIT_4_NAME_Y + 8, PORTRAIT_NAME_COLOR, 0);
|
||||
|
||||
// // HP bars.
|
||||
// LMMV(HP_BAR_1_X, HP_BAR_1_Y + get_active_page() * SCREEN_HEIGHT,
|
||||
@@ -708,10 +708,10 @@ void sr_draw_level_screen(void)
|
||||
// Compass.
|
||||
switch(player_dir)
|
||||
{
|
||||
case NORTH: sr_draw_text("N", COMPASS_X, COMPASS_Y, 9, 0); break;
|
||||
case EAST: sr_draw_text("E", COMPASS_X, COMPASS_Y, 9, 0); break;
|
||||
case SOUTH: sr_draw_text("S", COMPASS_X, COMPASS_Y, 9, 0); break;
|
||||
case WEST: sr_draw_text("W", COMPASS_X, COMPASS_Y, 9, 0); break;
|
||||
case NORTH: sr_draw_text("N", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
|
||||
case EAST: sr_draw_text("E", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
|
||||
case SOUTH: sr_draw_text("S", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
|
||||
case WEST: sr_draw_text("W", COMPASS_X, COMPASS_Y, COMPASS_COLOR, 0); break;
|
||||
}
|
||||
|
||||
// #WIP Draw a different floor in odd tiles to create ilusion of movement.
|
||||
@@ -720,7 +720,7 @@ void sr_draw_level_screen(void)
|
||||
floor_tile = !floor_tile;
|
||||
}
|
||||
|
||||
// Dungeon first person view.
|
||||
// Level first person view.
|
||||
sr_update_fp_view();
|
||||
sr_draw_fp_view();
|
||||
|
||||
@@ -801,15 +801,14 @@ void sr_update_input_level_mode(void)
|
||||
}
|
||||
}
|
||||
|
||||
// Actions.
|
||||
if (TriggerRead(JOY1_BUTTONB) == PRESSED ||
|
||||
TriggerRead(SPACEBAR) == PRESSED )
|
||||
{
|
||||
if (sr_is_generating_dungeon_level() == false)
|
||||
{
|
||||
sr_generate_dungeon_level();
|
||||
}
|
||||
}
|
||||
// // Actions.
|
||||
// if (TriggerRead(JOY1_BUTTONB) == PRESSED || TriggerRead(SPACEBAR) == PRESSED )
|
||||
// {
|
||||
// if (sr_is_generating_dungeon_level() == false)
|
||||
// {
|
||||
// sr_generate_dungeon_level();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
void sr_set_ingame_state(void)
|
||||
@@ -824,8 +823,8 @@ void sr_set_ingame_state(void)
|
||||
// This may be set by the random generator in the future?
|
||||
player_dir = NORTH;
|
||||
|
||||
// Set loading text.
|
||||
sr_set_loading_text();
|
||||
// Set loading.
|
||||
sr_set_display_loading();
|
||||
|
||||
// Load images.
|
||||
sr_load_sf5_image("P1.SF5", PAGE_HEIGHT * BACKBUFFER_PAGE);
|
||||
@@ -880,11 +879,5 @@ void sr_update_ingame_state(void)
|
||||
void sr_finished_ingame_drawing(void)
|
||||
{
|
||||
// Copy finished drawing of the first person view from back to front.
|
||||
|
||||
sr_page_copy_y_fast(LEVEL_SCREEN_X + LEVEL_SCREEN_SIZE_X, PAGE_HEIGHT, LEVEL_SCREEN_Y, LEVEL_SCREEN_SIZE_Y, 1);
|
||||
|
||||
// sr_page_copy_fast(0, 0,
|
||||
// LEVEL_SCREEN_DX, LEVEL_SCREEN_DY,
|
||||
// LEVEL_SCREEN_X, LEVEL_SCREEN_Y,
|
||||
// BACKBUFFER_PAGE, sr_get_active_page());
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#define INGAME_H
|
||||
|
||||
#include "main.h"
|
||||
#include "font.h"
|
||||
#include "fnt.h"
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Defines.
|
||||
@@ -15,7 +15,7 @@
|
||||
#define LEVEL_SIZE 24
|
||||
|
||||
#define BACKBUFFER_PAGE 1
|
||||
#define SPRITES_PAGE 2
|
||||
#define IMAGES_PAGE 2
|
||||
#define WALLS_PAGE 3
|
||||
|
||||
#define LEVEL_SCREEN_X 8
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
#define LEVEL_VIEW_DIST 2
|
||||
|
||||
#define COMPASS_COLOR 9
|
||||
#define COMPASS_X LEVEL_SCREEN_X + (LEVEL_SCREEN_SIZE_X - LEVEL_SCREEN_X) / 2
|
||||
#define COMPASS_Y 0
|
||||
|
||||
@@ -76,6 +77,7 @@
|
||||
#define PORTRAIT_SRC_Y 0
|
||||
#define PORTRAIT_SIZE 32
|
||||
|
||||
#define PORTRAIT_NAME_COLOR 15
|
||||
#define PORTRAIT_1_NAME_X 176
|
||||
#define PORTRAIT_1_NAME_Y FONT_SIZE - 4
|
||||
#define PORTRAIT_2_NAME_X 176
|
||||
|
||||
30
src/intro.c
30
src/intro.c
@@ -9,7 +9,7 @@
|
||||
#include "fusion-c/header/msx_fusion.h"
|
||||
|
||||
#include "main.h"
|
||||
#include "font.h"
|
||||
#include "fnt.h"
|
||||
#include "gfx.h"
|
||||
#include "intro.h"
|
||||
|
||||
@@ -22,7 +22,7 @@ enum Panel
|
||||
FIRST,
|
||||
SECOND,
|
||||
THIRD,
|
||||
FOURTH,
|
||||
FOURTH
|
||||
} current_panel;
|
||||
|
||||
//------------------------------------------------------------------
|
||||
@@ -37,13 +37,27 @@ enum Panel
|
||||
|
||||
void sr_draw_intro_text(void)
|
||||
{
|
||||
// TODO: Needs to be updated to new drawing system and actually do something.
|
||||
// #TODO: Needs to be updated to new drawing system and actually do something.
|
||||
|
||||
// // Intro text.
|
||||
// sr_set_drawing_state(Begin);
|
||||
// // Cls();
|
||||
// SetColors(0, 0, 14);
|
||||
|
||||
/*
|
||||
Deep in space, far away from the inhabited regions of the galaxy, lies a long-forgotten alien station.
|
||||
|
||||
Since its discovery, many expeditions have tried to explore and uncover the secrets of this ancient civilization. Some with noble intentions, others seeking only personal profit.
|
||||
|
||||
Neo-Midgard, as it’s known nowadays, is home to brave (or may I say foolish enough) settlers, scientists, adventurers, and bandits alike.
|
||||
|
||||
Your transport ship has just arrived at Neo-Midgard's docking bay.
|
||||
|
||||
You come in hopes to start anew, finding some adventures, and who knows, maybe getting rich and famous in the process.
|
||||
|
||||
This is your story...
|
||||
*/
|
||||
|
||||
// sr_draw_text("Deep in space far away", 8*4, 8*19, 15, 14);
|
||||
// sr_draw_text("from the inhabited regions", 8*3, 8*19+9, 15, 14);
|
||||
// sr_draw_text("of the galaxy lies a long", 8*3, 8*19+9+9, 15, 14);
|
||||
@@ -52,22 +66,22 @@ void sr_draw_intro_text(void)
|
||||
// //sr_set_drawing_state(WaitingForVDP);
|
||||
// sr_wait(1000);
|
||||
|
||||
// // Go to dungeon state.
|
||||
// // Go to ingame state.
|
||||
// sr_set_game_state(START_SCREEN);
|
||||
}
|
||||
|
||||
void sr_set_intro_state(void)
|
||||
{
|
||||
// TODO: Needs to be updated to new drawing system and actually do something.
|
||||
// #TODO: Needs to be updated to new drawing system and actually do something.
|
||||
//sr_draw_intro_text();
|
||||
}
|
||||
|
||||
void sr_update_intro_state(void)
|
||||
{
|
||||
// TODO: Needs to be updated to new drawing system and actually do something.
|
||||
// #TODO: Needs to be updated to new drawing system and actually do something.
|
||||
}
|
||||
|
||||
void sr_finished_intro_drawing(void)
|
||||
{
|
||||
|
||||
}
|
||||
// #TODO: Needs to be updated to new drawing system and actually do something.
|
||||
}
|
||||
|
||||
14
src/main.c
14
src/main.c
@@ -8,18 +8,18 @@
|
||||
|
||||
#include "fusion-c/header/msx_fusion.h"
|
||||
|
||||
#include "charcreation.h"
|
||||
#include "ingame.h"
|
||||
#include "createpcscr.h"
|
||||
#include "encounter.h"
|
||||
#include "font.h"
|
||||
#include "fnt.h"
|
||||
#include "gfx.h"
|
||||
#include "ingame.h"
|
||||
#include "intro.h"
|
||||
#include "menu.h"
|
||||
#include "procgen.h"
|
||||
#include "rnd.h"
|
||||
#include "snd.h"
|
||||
#include "startscr.h"
|
||||
#include "system.h"
|
||||
#include "random.h"
|
||||
#include "main.h"
|
||||
|
||||
//------------------------------------------------------------------
|
||||
@@ -34,14 +34,12 @@ uchar update_frame_count;
|
||||
// Functions.
|
||||
//------------------------------------------------------------------
|
||||
|
||||
void sr_set_loading_text(void)
|
||||
void sr_set_display_loading(void)
|
||||
{
|
||||
// Set loading text.
|
||||
sr_set_active_page(0);
|
||||
SetColors(0, 14, 0);
|
||||
Cls();
|
||||
sr_set_display_page(0);
|
||||
SetColors(15, 0, 0);
|
||||
PutText(5, 5, "LOADING...", LOGICAL_TIMP);
|
||||
}
|
||||
|
||||
void sr_set_game_state(uchar new_state)
|
||||
|
||||
@@ -25,7 +25,7 @@ enum GameState
|
||||
// Prototypes.
|
||||
//------------------------------------------------------------------
|
||||
|
||||
void sr_set_loading_text(void);
|
||||
void sr_set_display_loading(void);
|
||||
void sr_set_game_state(uchar new_state);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
|
||||
#include "main.h"
|
||||
#include "ingame.h"
|
||||
#include "rnd.h"
|
||||
#include "procgen.h"
|
||||
#include "random.h"
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Variables.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#include "random.h"
|
||||
#include "rnd.h"
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Variables.
|
||||
@@ -2,8 +2,8 @@
|
||||
// Star Rangers - A Dungeon Crawler for MSX2 using Fusion-C
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#ifndef RANDOM_H
|
||||
#define RANDOM_H
|
||||
#ifndef RND_H
|
||||
#define RND_H
|
||||
|
||||
#include "main.h"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "fusion-c/header/msx_fusion.h"
|
||||
|
||||
#include "main.h"
|
||||
#include "font.h"
|
||||
#include "fnt.h"
|
||||
#include "gfx.h"
|
||||
#include "startscr.h"
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
void sr_draw_startscr_intro_text(void)
|
||||
{
|
||||
// Set loading text.
|
||||
sr_set_loading_text();
|
||||
// Set loading.
|
||||
sr_set_display_loading();
|
||||
|
||||
// Load the title screen.
|
||||
sr_load_sf5_image("STRTSCR.SF5", PAGE_HEIGHT * TITLE_PAGE);
|
||||
@@ -35,7 +35,7 @@ void sr_draw_startscr_intro_text(void)
|
||||
SetColors(0, 0, 14);
|
||||
|
||||
sr_draw_text("PRESS SPACE KEY", FONT_SIZE * 8, FONT_SIZE * 16, 15, 14);
|
||||
sr_draw_text("@ 2023 SAFFRON SOFT", FONT_SIZE * 6, FONT_SIZE * 22, 15, 14);
|
||||
sr_draw_text("@ 1986 SAFFRON SOFT", FONT_SIZE * 6, FONT_SIZE * 22, 15, 14);
|
||||
|
||||
// Finish drawing.
|
||||
sr_set_drawing_state(END);
|
||||
@@ -48,13 +48,12 @@ void sr_set_startscr_state(void)
|
||||
|
||||
void sr_update_startscr_state(void)
|
||||
{
|
||||
// TODO:
|
||||
// #TODO
|
||||
// MENU
|
||||
// Go to load game -> ingame.
|
||||
// Go to new game -> intro.
|
||||
|
||||
if (TriggerRead(JOY1_BUTTONA) == PRESSED ||
|
||||
TriggerRead(SPACEBAR) == PRESSED )
|
||||
if (TriggerRead(JOY1_BUTTONA) == PRESSED || TriggerRead(SPACEBAR) == PRESSED )
|
||||
{
|
||||
sr_set_game_state(IN_GAME);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
// Defines.
|
||||
//------------------------------------------------------------------
|
||||
|
||||
#define TITLE_PAGE 1
|
||||
#define TITLE_PAGE 0
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Prototypes.
|
||||
|
||||
Reference in New Issue
Block a user