Add tests for encounters text
This commit is contained in:
parent
9154667efa
commit
fe74ac0ca7
|
@ -36,6 +36,7 @@ $input_c_files =
|
|||
|
||||
$input_c_test_files =
|
||||
"src/c/tests/main_test.c",
|
||||
"src/c/tests/battle_test.c",
|
||||
"src/c/tests/debug_printf/test_print.c",
|
||||
"src/c/tests/debug_printf/mgba.c",
|
||||
"src/c/tests/debug_printf/printf.c"
|
||||
|
|
|
@ -17,4 +17,10 @@ typedef struct BATTLE_DATA {
|
|||
short enemy_id; //0x92
|
||||
} BATTLE_DATA;
|
||||
|
||||
typedef struct ENEMY_DATA {
|
||||
byte unknown[0x14];
|
||||
char* encounter_text;
|
||||
byte unknown_2[0x28];
|
||||
} ENEMY_DATA;
|
||||
|
||||
#endif
|
|
@ -21,6 +21,8 @@ int __attribute__((naked)) m2_sub_a3384(int value) {}
|
|||
void __attribute__((naked)) m2_sub_d3c50() {}
|
||||
void __attribute__((naked)) m2_sub_d6844() {}
|
||||
byte __attribute__((naked)) m2_sub_daf84(short value) {}
|
||||
byte __attribute__((naked)) m2_battletext_loadstr(char* string) {}
|
||||
void __attribute__((naked)) m2_set_enemy_name(int val) {}
|
||||
int __attribute__((naked)) m2_setupwindow(WINDOW* window, short window_x, short window_y, short window_width, short window_height) {}
|
||||
int __attribute__((naked)) m2_clearwindowtiles(WINDOW* window) {}
|
||||
void __attribute__((naked)) m2_printstr(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight) {}
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
#include "battle_test.h"
|
||||
#include "debug_printf/test_print.h"
|
||||
#include "../locs.h"
|
||||
|
||||
bool text_stayed_inside(WINDOW* window);
|
||||
|
||||
void test_encounter_text()
|
||||
{
|
||||
m2_btl_user_ptr->is_enemy = true;
|
||||
for(int i = 1; i <= 3; i++)
|
||||
{
|
||||
m2_btl_enemies_size = i;
|
||||
|
||||
for(int j = 0; j <= 230; j++)
|
||||
{
|
||||
m2_btl_user_ptr->id = j;
|
||||
m2_set_enemy_name(1);
|
||||
m2_battletext_loadstr(m2_enemies[j].encounter_text);
|
||||
if(m2_btl_enemies_size == 1)
|
||||
assert_message(text_stayed_inside(window_pointers[2]), "Enemy %d", j);
|
||||
else if (m2_btl_enemies_size == 2)
|
||||
assert_message(text_stayed_inside(window_pointers[2]), "Enemy %d - cohort", j);
|
||||
else
|
||||
assert_message(text_stayed_inside(window_pointers[2]), "Enemy %d - cohorts", j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool text_stayed_inside(WINDOW* window)
|
||||
{
|
||||
for(int i = 0; i < window->window_height; i++)
|
||||
if((*tilemap_pointer)[(0x20*(window->window_y + i))+window->window_x + window->window_width] != RIGHT_BORDER_TILE)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void setup_ness_name()
|
||||
{
|
||||
for(int i = 0; i < 5; i++)
|
||||
*(pc_names + i) = W_LETTER;
|
||||
*(pc_names + 5) = 0;
|
||||
*(pc_names + 6) = 0xFF;
|
||||
}
|
||||
|
||||
void setup_king_name()
|
||||
{
|
||||
for(int i = 0; i < 6; i++)
|
||||
*(pc_names + KING_OFFSET + i) = W_LETTER;
|
||||
*(pc_names + KING_OFFSET + 6) = 0;
|
||||
*(pc_names + KING_OFFSET + 7) = 0xFF;
|
||||
}
|
||||
|
||||
void setup_battle_tests()
|
||||
{
|
||||
(window_pointers[2]) = (struct WINDOW*)0x2029F88;
|
||||
(window_pointers[2])->window_x = 4;
|
||||
(window_pointers[2])->window_y = 1;
|
||||
(window_pointers[2])->window_width = 0x16;
|
||||
(window_pointers[2])->window_height = 4;
|
||||
(window_pointers[2])->window_area = (window_pointers[2])->window_width * (window_pointers[2])->window_height;
|
||||
m2_btl_user_ptr = (BATTLE_DATA*)0x2021110;
|
||||
m2_btl_target_ptr = (BATTLE_DATA*)0x2021110;
|
||||
setup_ness_name();
|
||||
setup_king_name();
|
||||
m2_is_battle = 1;
|
||||
(*(byte*)(0x3005050)) = 0xFF;
|
||||
(*(short*)(0x30023DC)) = 0; //Default delay between prints
|
||||
(*(int*)(0x3005220)) = 0x2028820;
|
||||
*tilemap_pointer= (unsigned short*)0x2028018;
|
||||
m2_script_readability = false;
|
||||
}
|
||||
|
||||
void do_battle_tests()
|
||||
{
|
||||
test_encounter_text();
|
||||
}
|
||||
|
||||
void start_battle_tests()
|
||||
{
|
||||
setup_battle_tests();
|
||||
do_battle_tests();
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#include "../battle_data.h"
|
||||
#include "debug_printf/test_print.h"
|
||||
|
||||
#define W_LETTER 0x87
|
||||
#define KING_OFFSET 0x1C
|
||||
#define RIGHT_BORDER_TILE 0x0095
|
||||
|
||||
void start_battle_tests();
|
||||
|
||||
extern void m2_battletext_loadstr(char* string);
|
||||
|
||||
extern ENEMY_DATA m2_enemies[];
|
||||
extern bool m2_script_readability;
|
||||
extern short m2_is_battle;
|
||||
extern byte m2_btl_enemies_size;
|
||||
extern BATTLE_DATA* m2_btl_user_ptr;
|
||||
extern BATTLE_DATA* m2_btl_target_ptr;
|
||||
extern void m2_set_enemy_name(int val);
|
|
@ -1,8 +1,8 @@
|
|||
#include "mgba.h"
|
||||
#include "stdbool.h"
|
||||
|
||||
#define NULL (0)
|
||||
#define MAX_STR_SIZE 0x100
|
||||
#define NULL 0
|
||||
|
||||
#define assert(condition) assert_print(condition, __FILE__, __LINE__, NULL)
|
||||
#define assert_message(condition, format, ...) assert_print(condition, __FILE__, __LINE__, format, __VA_ARGS__)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#include "main_test.h"
|
||||
#include "battle_test.h"
|
||||
#include "debug_printf/test_print.h"
|
||||
|
||||
void start_tests()
|
||||
{
|
||||
start_session();
|
||||
|
||||
|
||||
|
||||
start_battle_tests();
|
||||
|
||||
end_session();
|
||||
|
||||
|
|
|
@ -151,7 +151,6 @@ extern byte m12_other_str6[];
|
|||
extern byte m12_other_str7[];
|
||||
extern byte m12_other_str8[];
|
||||
extern byte m2_cstm_last_printed[];
|
||||
extern byte *m2_script_readability;
|
||||
extern unsigned short m12_cartridge_palettes[];
|
||||
extern unsigned short m12_cartridge_palettes_dimmed[];
|
||||
extern int overworld_buffer;
|
||||
|
|
|
@ -2406,6 +2406,8 @@ disclaimer_map:
|
|||
.definelabel m2_curhpwindow_down ,0x80D41D8
|
||||
.definelabel m2_sub_d6844 ,0x80D6844
|
||||
.definelabel m2_sub_daf84 ,0x80DAF84
|
||||
.definelabel m2_battletext_loadstr ,0x80DB168
|
||||
.definelabel m2_set_enemy_name ,0x80DB04C
|
||||
.definelabel m2_setupbattlename ,0x80DCD00
|
||||
.definelabel m2_stat_symb_checker ,0x8B0EDA4
|
||||
.definelabel vblank ,0x80F47E4
|
||||
|
@ -2415,6 +2417,7 @@ disclaimer_map:
|
|||
.definelabel m2_cast_roll_pointers ,0x82DB25C
|
||||
.definelabel m2_items ,0x8B1D62C
|
||||
.definelabel m2_default_names ,0x82B9330
|
||||
.definelabel m2_enemies ,0x8739D1C
|
||||
.definelabel m2_psi_print_table ,0x8B2A9C0
|
||||
.definelabel m2_title_teardown ,0x8000C28
|
||||
|
||||
|
|
Loading…
Reference in New Issue