Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
311e1c1
Update sprites.h
Spatulade Mar 18, 2026
fafb711
more setup for these
Spatulade Mar 18, 2026
97b7677
added GUIStr_EventWarningDesc to enum
Loobinex Mar 18, 2026
3e8c482
Made it build
Loobinex Mar 18, 2026
3d200f9
added a million entries to EventTypeInfo (sorry)
Spatulade Mar 19, 2026
e603663
idk lol
Spatulade Mar 27, 2026
f39db10
undid disgusting list, hoping to set icon later
Spatulade Mar 27, 2026
15c24f9
Update map_events.h
Spatulade Mar 27, 2026
c764997
made new commands instead of changing existing ones
Spatulade Mar 29, 2026
b71bb3e
started adding icon field to event creation commands
Spatulade Mar 29, 2026
eb290f9
vague idea for commands, no idea if this makes sense
Spatulade Mar 29, 2026
4a64e43
Added last argument to every event update command, added unique event…
Spatulade Mar 30, 2026
a754691
tried setting up headers properly etc
Spatulade Mar 30, 2026
089f375
compiler fixes hopefully
Spatulade Mar 31, 2026
746c91c
semicolons lol
Spatulade Mar 31, 2026
467c101
more fixes for compiler
Spatulade Mar 31, 2026
2513893
moar
Spatulade Mar 31, 2026
3504f2f
Merge branch 'master' into pr/4624
Loobinex Mar 31, 2026
45c8de8
Made a functional script command
Loobinex Mar 31, 2026
b3f5380
Correct param
Loobinex Mar 31, 2026
98461c0
Helped get the number too
Loobinex Mar 31, 2026
9147fd9
moved arguments round if you want colour second after ID
Spatulade Mar 31, 2026
463cb7a
Reworked DISPLAY_BONUS_OBJECTIVE to modern way
Loobinex Mar 31, 2026
fd829ed
No need for the decode
Loobinex Mar 31, 2026
36b0a17
Made it almost functional
Loobinex Mar 31, 2026
accce7e
take correct icon ID
Loobinex Mar 31, 2026
ea72509
Fixed it to actually work
Loobinex Mar 31, 2026
0a8f339
removed some unrelated longs
Loobinex Mar 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/config_strings.h
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,7 @@ enum GUIStrings {
GUIStr_CtrlAscend = STRINGS_MAX + 1078,
GUIStr_CtrlDescend = STRINGS_MAX + 1079,
GUIStr_Keeper = STRINGS_MAX + 1082,
GUIStr_EventWarningDesc, //todo add string
};

enum CampaignStrings {
Expand Down
10 changes: 5 additions & 5 deletions src/creature_instances.c
Original file line number Diff line number Diff line change
Expand Up @@ -666,7 +666,7 @@ long instf_dig(struct Thing *creatng, int32_t *param)
{
EventIndex evidx = event_create_event_or_update_nearby_existing_event(
subtile_coord_center(stl_x), subtile_coord_center(stl_y),
EvKind_AreaDiscovered, creatng->owner, 0);
EvKind_AreaDiscovered, creatng->owner, 0, 0);
if ((evidx > 0) && is_my_player_number(creatng->owner))
output_message(SMsg_DugIntoNewArea, 0);
}
Expand All @@ -679,7 +679,7 @@ long instf_dig(struct Thing *creatng, int32_t *param)
{
EventIndex evidx = event_create_event_or_update_nearby_existing_event(
subtile_coord_center(stl_x), subtile_coord_center(stl_y),
EvKind_AreaDiscovered, creatng->owner, 0);
EvKind_AreaDiscovered, creatng->owner, 0, 0);
if ((evidx > 0) && is_my_player_number(creatng->owner))
output_message(SMsg_DugIntoNewArea, 0);
}
Expand Down Expand Up @@ -723,7 +723,7 @@ long instf_destroy(struct Thing *creatng, int32_t *param)
{
MapCoord ccor_x = subtile_coord_center(room->central_stl_x);
MapCoord ccor_y = subtile_coord_center(room->central_stl_y);
event_create_event_or_update_nearby_existing_event(ccor_x, ccor_y, EvKind_RoomLost, room->owner, room->kind);
event_create_event_or_update_nearby_existing_event(ccor_x, ccor_y, EvKind_RoomLost, room->owner, room->kind, 0);
claim_enemy_room(room, creatng);
}
thing_play_sample(creatng, 76, NORMAL_PITCH, 0, 3, 0, 2, FULL_LOUDNESS);
Expand Down Expand Up @@ -787,7 +787,7 @@ long instf_attack_room_slab(struct Thing *creatng, int32_t *param)
}
if (count_slabs_of_room_type(room->owner, room->kind) <= 1)
{
event_create_event_or_update_nearby_existing_event(coord_slab(creatng->mappos.x.val), coord_slab(creatng->mappos.y.val), EvKind_RoomLost, room->owner, room->kind);
event_create_event_or_update_nearby_existing_event(coord_slab(creatng->mappos.x.val), coord_slab(creatng->mappos.y.val), EvKind_RoomLost, room->owner, room->kind, 0);
}
long z = get_floor_filled_subtiles_at(creatng->mappos.x.stl.num, creatng->mappos.y.stl.num);
if (!delete_room_slab(coord_slab(creatng->mappos.x.val), coord_slab(creatng->mappos.y.val), 1))
Expand Down Expand Up @@ -935,7 +935,7 @@ long instf_first_person_do_imp_task(struct Thing *creatng, int32_t *param)
MapCoord coord_x = subtile_coord_center(room->central_stl_x);
MapCoord coord_y = subtile_coord_center(room->central_stl_y);
event_create_event_or_update_nearby_existing_event(coord_x, coord_y,
EvKind_RoomUnderAttack, room->owner, 0);
EvKind_RoomUnderAttack, room->owner, 0, 0);
if (is_my_player_number(room->owner))
{
output_message(SMsg_EnemyDestroyRooms, MESSAGE_DURATION_FIGHT);
Expand Down
10 changes: 5 additions & 5 deletions src/creature_states.c
Original file line number Diff line number Diff line change
Expand Up @@ -1093,7 +1093,7 @@ TbBool attempt_to_destroy_enemy_room(struct Thing *thing, MapSubtlCoord stl_x, M
}
event_create_event_or_update_nearby_existing_event(
subtile_coord_center(room->central_stl_x), subtile_coord_center(room->central_stl_y),
EvKind_RoomUnderAttack, room->owner, 0);
EvKind_RoomUnderAttack, room->owner, 0, 0);
if (is_my_player_number(room->owner))
output_message(SMsg_EnemyDestroyRooms, MESSAGE_DURATION_FIGHT);
thing->continue_state = CrSt_CreatureAttackRooms;
Expand Down Expand Up @@ -3355,7 +3355,7 @@ short creature_wait_at_treasure_room_door(struct Thing *creatng)
return 1;
}
anger_apply_anger_to_creature(creatng, crconf->annoy_queue, AngR_NotPaid, 1);
EventIndex evidx = event_create_event_or_update_nearby_existing_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_WorkRoomUnreachable, creatng->owner, RoK_TREASURE);
EventIndex evidx = event_create_event_or_update_nearby_existing_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_WorkRoomUnreachable, creatng->owner, RoK_TREASURE, 0);
if (evidx > 0)
{
output_room_message(creatng->owner, RoK_TREASURE, OMsg_RoomNoRoute);
Expand Down Expand Up @@ -3972,7 +3972,7 @@ char new_slab_tunneller_check_for_breaches(struct Thing *creatng)

set_flag(cctrl->party.player_broken_into_flags, to_flag(i));
++dgn->times_broken_into;
event_create_event_or_update_nearby_existing_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_Breach, i, 0);
event_create_event_or_update_nearby_existing_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_Breach, i, 0, 0);
if (is_my_player_number(i))
{
output_message(SMsg_WallsBreach, 0);
Expand Down Expand Up @@ -5257,12 +5257,12 @@ long process_creature_needs_to_eat(struct Thing *creatng, const struct CreatureM
}
}
if (room_is_invalid(nroom)) {
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0);
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0, 0);
anger_apply_anger_to_creature(creatng, crconf->annoy_no_hatchery, AngR_Hungry, 1);
return 0;
}
if (!external_set_thing_state(creatng, CrSt_CreatureToGarden)) {
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0);
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0, 0);
anger_apply_anger_to_creature(creatng, crconf->annoy_no_hatchery, AngR_Hungry, 1);
return 0;
}
Expand Down
4 changes: 2 additions & 2 deletions src/creature_states_combt.c
Original file line number Diff line number Diff line change
Expand Up @@ -648,9 +648,9 @@ void update_battle_events(BattleIndex battle_id)
dungeon->last_combat_location.y.val = map_y;
dungeon->last_combat_location.z.val = map_z;
if (owner_flags == to_flag(i)) { // if the current player (i) is the only player in the fight
event_create_event_or_update_old_event(map_x, map_y, EvKind_FriendlyFight, i, battle_id);
event_create_event_or_update_old_event(map_x, map_y, EvKind_FriendlyFight, i, battle_id, 0);
} else {
event_create_event_or_update_old_event(map_x, map_y, EvKind_EnemyFight, i, battle_id);
event_create_event_or_update_old_event(map_x, map_y, EvKind_EnemyFight, i, battle_id, 0);
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/creature_states_gardn.c
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ void person_search_for_food_again(struct Thing *creatng, struct Room *room)
{
RoomRole job_rrole = get_room_role_for_job(Job_TAKE_FEED);
// Warn about no food in this room
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0);
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0, 0);
output_room_message(creatng->owner, find_first_roomkind_with_role(job_rrole), OMsg_RoomTooSmall);
// Check whether there's a room which does have food
// Try to find one which has plenty of food
Expand Down Expand Up @@ -270,7 +270,7 @@ short creature_to_garden(struct Thing *creatng)
if (!player_has_room_of_role(creatng->owner, job_rrole))
{
// No room for feeding creatures
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0);
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0, 0);
output_room_message(creatng->owner, find_first_roomkind_with_role(job_rrole), OMsg_RoomNeeded);
nroom = INVALID_ROOM;
} else
Expand All @@ -290,7 +290,7 @@ short creature_to_garden(struct Thing *creatng)
} else
{
// The room is reachable, so it probably has just no food
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0);
event_create_event_or_update_nearby_existing_event(0, 0, EvKind_CreatrHungry, creatng->owner, 0, 0);
output_room_message(creatng->owner, find_first_roomkind_with_role(job_rrole), OMsg_RoomTooSmall);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/creature_states_hero.c
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,7 @@ short good_arrived_at_attack_room(struct Thing *thing)
internal_set_thing_state(thing, CrSt_GoodAttackRoom1);
MapCoord ev_coord_x = subtile_coord_center(room->central_stl_x);
MapCoord ev_coord_y = subtile_coord_center(room->central_stl_y);
event_create_event_or_update_nearby_existing_event(ev_coord_x, ev_coord_y, EvKind_RoomUnderAttack, room->owner, 0);
event_create_event_or_update_nearby_existing_event(ev_coord_x, ev_coord_y, EvKind_RoomUnderAttack, room->owner, 0, 0);
if (is_my_player_number(room->owner))
output_message(SMsg_EnemyDestroyRooms, MESSAGE_DURATION_FIGHT);
return 1;
Expand Down Expand Up @@ -545,7 +545,7 @@ short good_attack_room(struct Thing *thing)
set_creature_instance(thing, CrInst_ATTACK_ROOM_SLAB, 0, 0);
MapCoord ev_coord_x = subtile_coord_center(room->central_stl_x);
MapCoord ev_coord_y = subtile_coord_center(room->central_stl_y);
event_create_event_or_update_nearby_existing_event(ev_coord_x, ev_coord_y, EvKind_RoomUnderAttack, room->owner, 0);
event_create_event_or_update_nearby_existing_event(ev_coord_x, ev_coord_y, EvKind_RoomUnderAttack, room->owner, 0, 0);
if (is_my_player_number(room->owner))
output_message(SMsg_EnemyDestroyRooms, MESSAGE_DURATION_FIGHT);
}
Expand Down
2 changes: 1 addition & 1 deletion src/creature_states_mood.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ void anger_set_creature_anger_f(struct Thing *creatng, long annoy_lv, AnnoyMotiv
dungeon->creatures_annoyed++;
event_create_event_or_update_nearby_existing_event(
creatng->mappos.x.val, creatng->mappos.y.val,
EvKind_CreatrIsAnnoyed, creatng->owner, creatng->index);
EvKind_CreatrIsAnnoyed, creatng->owner, creatng->index, 0);
}
} else
{
Expand Down
2 changes: 1 addition & 1 deletion src/creature_states_prisn.c
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ CrStateRet process_prison_visuals(struct Thing *creatng, struct Room *room)
if (game.play_gameturn - cctrl->turns_at_job < 250)
{
set_creature_instance(creatng, CrInst_MOAN, 0, 0);
event_create_event_or_update_nearby_existing_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_PrisonerStarving, room->owner, creatng->index);
event_create_event_or_update_nearby_existing_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_PrisonerStarving, room->owner, creatng->index, 0);
if (game.play_gameturn - cctrl->imprison.last_mood_sound_turn > 32)
{
play_creature_sound(creatng, CrSnd_Sad, 2, 0);
Expand Down
2 changes: 1 addition & 1 deletion src/creature_states_scavn.c
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ TbBool process_scavenge_creature_from_level(struct Thing *scavtng, struct Thing
if (is_my_player_number(scavtng->owner)) {
output_message(SMsg_CreatureScanvenged, 500);
}
event_create_event(scavtng->mappos.x.val, scavtng->mappos.y.val, EvKind_CreatrScavenged, scavtng->owner, scavtng->index);
event_create_event(scavtng->mappos.x.val, scavtng->mappos.y.val, EvKind_CreatrScavenged, scavtng->owner, scavtng->index, 0);
} else
{
calldngn->scavenge_turn_points[calltng->model] += work_value;
Expand Down
10 changes: 5 additions & 5 deletions src/creature_states_spdig.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,12 +307,12 @@ long check_out_unclaimed_spells(struct Thing *spdigtng, long range)
if (thing_is_spellbook(thing))
{
event_create_event_or_update_nearby_existing_event(thing->mappos.x.val, thing->mappos.y.val,
EvKind_SpellPickedUp, spdigtng->owner, thing->index);
EvKind_SpellPickedUp, spdigtng->owner, thing->index, 0);
} else
if (thing_is_special_box(thing))
{
event_create_event_or_update_nearby_existing_event(thing->mappos.x.val, thing->mappos.y.val,
EvKind_DnSpecialFound, spdigtng->owner, thing->index);
EvKind_DnSpecialFound, spdigtng->owner, thing->index, 0);
}
spdigtng->continue_state = CrSt_CreaturePicksUpSpellObject;
cctrl->pickup_object_id = thing->index;
Expand Down Expand Up @@ -389,12 +389,12 @@ long check_out_unclaimed_traps(struct Thing *spdigtng, long range)
if (thing_is_trap_crate(thing))
{
event_create_event_or_update_nearby_existing_event(thing->mappos.x.val, thing->mappos.y.val,
EvKind_TrapCrateFound, spdigtng->owner, thing->index);
EvKind_TrapCrateFound, spdigtng->owner, thing->index, 0);
} else
if (thing_is_door_crate(thing))
{
event_create_event_or_update_nearby_existing_event(thing->mappos.x.val, thing->mappos.y.val,
EvKind_DoorCrateFound, spdigtng->owner, thing->index);
EvKind_DoorCrateFound, spdigtng->owner, thing->index, 0);
}
spdigtng->continue_state = CrSt_CreaturePicksUpCrateForWorkshop;
cctrl->pickup_object_id = thing->index;
Expand Down Expand Up @@ -1056,7 +1056,7 @@ short imp_converts_dungeon(struct Thing *spdigtng)
MapCoord coord_x = subtile_coord_center(room->central_stl_x);
MapCoord coord_y = subtile_coord_center(room->central_stl_y);
event_create_event_or_update_nearby_existing_event(coord_x, coord_y,
EvKind_RoomUnderAttack, room->owner, 0);
EvKind_RoomUnderAttack, room->owner, 0, 0);
if (is_my_player_number(room->owner))
{
output_message(SMsg_EnemyDestroyRooms, MESSAGE_DURATION_FIGHT);
Expand Down
6 changes: 3 additions & 3 deletions src/dungeon_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,8 @@ void add_heart_health(PlayerNumber plyr_idx,HitPoints healthdelta,TbBool warn_on
{
if (heartng->health < old_health)
{
event_create_event_or_update_nearby_existing_event(heartng->mappos.x.val, heartng->mappos.y.val, EvKind_HeartAttacked, heartng->owner, heartng->index);
if (is_my_player_number(heartng->owner))
event_create_event_or_update_nearby_existing_event(heartng->mappos.x.val, heartng->mappos.y.val, EvKind_HeartAttacked, heartng->owner, heartng->index, 0);
if (is_my_player_number(heartng->owner), 0)
{
output_message(SMsg_HeartUnderAttack, 400);
controller_rumble(50);
Expand Down Expand Up @@ -486,7 +486,7 @@ TbBool mark_creature_joined_dungeon(struct Thing *creatng)
}
if ((dungeon->owned_creatures_of_model[creatng->model] <= 1) && (dungeon->creature_models_joined[creatng->model] <= 0))
{
event_create_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_NewCreature, creatng->owner, creatng->index);
event_create_event(creatng->mappos.x.val, creatng->mappos.y.val, EvKind_NewCreature, creatng->owner, creatng->index, 0);
}
if (dungeon->creature_models_joined[creatng->model] < 255)
{
Expand Down
Loading