TRX/test/main.c

84 lines
2.9 KiB
C
Raw Normal View History

2021-03-07 15:12:48 +01:00
#include "config.h"
#include "test.h"
2021-03-18 16:14:28 +01:00
#include "filesystem.h"
2021-03-07 15:59:00 +01:00
#include <stdlib.h>
2021-03-07 15:12:48 +01:00
2021-03-07 15:59:00 +01:00
void test_empty_config()
2021-03-07 15:12:48 +01:00
{
2021-03-11 14:54:59 +01:00
T1MReadConfigFromJson("{}");
2021-03-07 15:12:48 +01:00
ASSERT_INT_EQUAL(T1MConfig.disable_healing_between_levels, 0);
ASSERT_INT_EQUAL(T1MConfig.disable_medpacks, 0);
ASSERT_INT_EQUAL(T1MConfig.disable_magnums, 0);
ASSERT_INT_EQUAL(T1MConfig.disable_uzis, 0);
ASSERT_INT_EQUAL(T1MConfig.disable_shotgun, 0);
ASSERT_INT_EQUAL(T1MConfig.enable_enemy_healthbar, 1);
ASSERT_INT_EQUAL(T1MConfig.enable_enhanced_look, 1);
ASSERT_INT_EQUAL(T1MConfig.enable_shotgun_flash, 1);
ASSERT_INT_EQUAL(T1MConfig.enable_numeric_keys, 1);
ASSERT_INT_EQUAL(T1MConfig.enable_tr3_sidesteps, 1);
ASSERT_INT_EQUAL(T1MConfig.enable_cheats, 0);
ASSERT_INT_EQUAL(T1MConfig.enable_braid, 0);
2021-03-17 13:56:05 +01:00
ASSERT_INT_EQUAL(T1MConfig.enable_compass_stats, 1);
ASSERT_INT_EQUAL(T1MConfig.enable_timer_in_inventory, 1);
2021-03-07 15:12:48 +01:00
ASSERT_INT_EQUAL(
T1MConfig.healthbar_showing_mode, T1M_BSM_FLASHING_OR_DEFAULT);
ASSERT_INT_EQUAL(T1MConfig.healthbar_location, T1M_BL_TOP_LEFT);
ASSERT_INT_EQUAL(T1MConfig.healthbar_color, T1M_BC_RED);
ASSERT_INT_EQUAL(T1MConfig.airbar_showing_mode, T1M_BSM_DEFAULT);
ASSERT_INT_EQUAL(T1MConfig.airbar_location, T1M_BL_TOP_RIGHT);
ASSERT_INT_EQUAL(T1MConfig.airbar_color, T1M_BC_BLUE);
ASSERT_INT_EQUAL(T1MConfig.enemy_healthbar_location, T1M_BL_BOTTOM_LEFT);
ASSERT_INT_EQUAL(T1MConfig.enemy_healthbar_color, T1M_BC_GREY);
ASSERT_INT_EQUAL(T1MConfig.fix_key_triggers, 1);
ASSERT_INT_EQUAL(T1MConfig.fix_end_of_level_freeze, 1);
ASSERT_INT_EQUAL(T1MConfig.fix_tihocan_secret_sound, 1);
ASSERT_INT_EQUAL(T1MConfig.fix_pyramid_secret_trigger, 1);
ASSERT_INT_EQUAL(T1MConfig.fix_illegal_gun_equip, 1);
ASSERT_INT_EQUAL(T1MConfig.fix_fmv_esc_key, 1);
ASSERT_INT_EQUAL(T1MConfig.fix_secrets_killing_music, 1);
ASSERT_INT_EQUAL(T1MConfig.fix_creature_dist_calc, 1);
2021-03-07 15:12:48 +01:00
ASSERT_INT_EQUAL(T1MConfig.fov_value, 65);
ASSERT_INT_EQUAL(T1MConfig.fov_vertical, 1);
ASSERT_INT_EQUAL(T1MConfig.disable_demo, 0);
ASSERT_INT_EQUAL(T1MConfig.disable_fmv, 0);
2021-03-11 20:14:26 +01:00
ASSERT_INT_EQUAL(T1MConfig.disable_cine, 0);
2021-03-07 15:12:48 +01:00
}
2021-03-07 15:59:00 +01:00
void test_config_override()
{
2021-03-18 16:14:28 +01:00
MYFILE *fp = FileOpen("cfg/Tomb1Main.json5", FILE_OPEN_READ);
2021-03-07 15:59:00 +01:00
ASSERT_OK(!!fp);
2021-03-18 16:14:28 +01:00
int cfg_size = FileSize(fp);
2021-03-11 16:56:00 +01:00
char *cfg_data = malloc(cfg_size + 1);
2021-03-07 15:59:00 +01:00
ASSERT_OK(!!cfg_data);
2021-03-18 16:14:28 +01:00
FileRead(cfg_data, 1, cfg_size, fp);
2021-03-11 16:56:00 +01:00
cfg_data[cfg_size] = '\0';
2021-03-18 16:14:28 +01:00
FileClose(fp);
2021-03-07 15:59:00 +01:00
2021-03-11 16:56:00 +01:00
char *tmp = strstr(cfg_data, "enable_cheats\": false,");
2021-03-07 15:59:00 +01:00
ASSERT_OK(!!tmp);
2021-03-11 16:56:00 +01:00
tmp = strstr(tmp, "false,");
2021-03-07 15:59:00 +01:00
ASSERT_OK(!!tmp);
2021-03-11 16:56:00 +01:00
memcpy(tmp, "true, ", 6);
2021-03-07 15:59:00 +01:00
2021-03-11 14:54:59 +01:00
T1MReadConfigFromJson("{}");
2021-03-07 15:59:00 +01:00
ASSERT_INT_EQUAL(T1MConfig.enable_cheats, 0);
T1MReadConfigFromJson(cfg_data);
ASSERT_INT_EQUAL(T1MConfig.enable_cheats, 1);
free(cfg_data);
}
2021-03-07 23:34:28 +01:00
int main(int argc, char *argv[])
2021-03-07 15:12:48 +01:00
{
2021-03-07 15:59:00 +01:00
test_empty_config();
test_config_override();
2021-03-07 15:12:48 +01:00
TEST_RESULTS();
}