mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
Initial implementation of set_outline function (need to find better solution) #54
This commit is contained in:
@@ -158,6 +158,15 @@
|
||||
#define GAME_MSG_PRO_TILE (0x1004)
|
||||
#define GAME_MSG_PRO_MISC (0x1005)
|
||||
|
||||
#define OUTLINE_NONE (0)
|
||||
#define OUTLINE_RED_GLOW (0x01)
|
||||
#define OUTLINE_RED (0x02)
|
||||
#define OUTLINE_PURPLE (0x03)
|
||||
#define OUTLINE_GREY (0x04)
|
||||
#define OUTLINE_GREEN_GLOW (0x08)
|
||||
#define OUTLINE_YELLOW (0x10)
|
||||
#define OUTLINE_DARK_YELLOW (0x20)
|
||||
|
||||
#define mstr_combat(x) (message_str_game(GAME_MSG_COMBAT, x))
|
||||
#define mstr_ai(x) (message_str_game(GAME_MSG_AI, x))
|
||||
#define mstr_scrname(x) (message_str_game(GAME_MSG_SCRNAME, x))
|
||||
@@ -196,3 +205,5 @@
|
||||
#define intface_show sfall_func0("intface_show")
|
||||
#define intface_is_hidden sfall_func0("intface_is_hidden")
|
||||
#define exec_map_update_scripts sfall_func0("exec_map_update_scripts")
|
||||
#define set_outline(obj, color) sfall_func2("set_outline", obj, color)
|
||||
#define get_outline(obj) sfall_func1("get_outline", obj)
|
||||
|
||||
@@ -63,6 +63,7 @@ WRAP_WATCOM_FUNC1(long, register_object_must_erase, GameObject*, object)
|
||||
// WRAP_WATCOM_FUNC3(long, register_object_run_to_tile_, GameObject*, object;
|
||||
WRAP_WATCOM_FUNC3(long, register_object_take_out, GameObject*, object, long, holdFrameId, long, nothing)
|
||||
WRAP_WATCOM_FUNC3(long, register_object_turn_towards, GameObject*, object, long, tileNum, long, nothing)
|
||||
WRAP_WATCOM_FUNC0(void, tile_refresh_display)
|
||||
WRAP_WATCOM_FUNC1(long, text_font, long, fontNum)
|
||||
WRAP_WATCOM_FUNC6(DWORD, win_add, long, x, long, y, long, width, long, height, long, bgColorIndex, long, flags)
|
||||
WRAP_WATCOM_FUNC1(void, win_show, DWORD, winRef)
|
||||
|
||||
@@ -693,7 +693,7 @@ static void RunGlobalScripts1() {
|
||||
}
|
||||
} else if (highlightingToggled) {
|
||||
if (highlightingToggled == 1) {
|
||||
obj_outline_all_items_off();
|
||||
obj_outline_all_items_off();
|
||||
}
|
||||
highlightingToggled = 0;
|
||||
}
|
||||
|
||||
@@ -124,6 +124,8 @@ static const SfallMetarule metaruleArray[] = {
|
||||
{"intface_hide", sf_intface_hide, 0, 0},
|
||||
{"intface_is_hidden", sf_intface_is_hidden, 0, 0},
|
||||
{"exec_map_update_scripts", sf_exec_map_update_scripts, 0, 0},
|
||||
{"set_outline", sf_set_outline, 2, 2, {ARG_OBJECT, ARG_INT}},
|
||||
{"get_outline", sf_get_outline, 1, 1, {ARG_OBJECT}}
|
||||
};
|
||||
|
||||
void InitMetaruleTable() {
|
||||
|
||||
@@ -397,5 +397,16 @@ void sf_critter_inven_obj2(OpcodeContext& ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
void sf_set_outline(OpcodeContext& ctx) {
|
||||
auto obj = ctx.arg(0).asObject();
|
||||
*(long*)&obj->outline = ctx.arg(1).asInt();
|
||||
fo::func::tile_refresh_display();
|
||||
}
|
||||
|
||||
void sf_get_outline(OpcodeContext& ctx) {
|
||||
auto obj = ctx.arg(0).asObject();
|
||||
ctx.setReturn(*(long*)&obj->outline);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,5 +67,9 @@ void sf_obj_is_carrying_obj(OpcodeContext&);
|
||||
|
||||
void sf_critter_inven_obj2(OpcodeContext&);
|
||||
|
||||
void sf_set_outline(OpcodeContext&);
|
||||
|
||||
void sf_get_outline(OpcodeContext&);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user