fix crash while clickmap is used in save dialog

This commit is contained in:
Ondrej Novak 2025-04-22 19:53:51 +02:00
parent af61d06130
commit b1d0f252f3
5 changed files with 86 additions and 58 deletions

View file

@ -1744,6 +1744,7 @@ void unwire_save_load(void)
send_message(E_DONE,E_KEYBOARD,saveload_keyboard);
send_message(E_DONE,E_KEYBOARD,saveload_keyboard_menu);
free_savegame_list(&current_game_slot_list);
change_click_map(0,0);
}

View file

@ -1602,6 +1602,27 @@ THAGGLERESULT smlouvat_dlg(int cena,int puvod,int pocet,int posledni, int money,
return res;
}
static void save_dialog_keyboards(EVENT_MSG *msg,OBJREC *o)
{
o;
if (msg->msg==E_KEYBOARD)
{
int c = va_arg(msg->data, int);
switch(c & 0xFF)
{
case 13:goto_control(30);terminate_gui();break;
case 27:goto_control(20);terminate_gui();break;
}
}
if (msg->msg == E_MOUSE) {
const MS_EVENT *ev = va_arg(msg->data, MS_EVENT *);
if (ev->event_type & MS_EVENT_MOUSE_RRELEASE) {
goto_control(20);terminate_gui();
}
}
}
char ask_save_dialog(char *name_buffer, size_t name_size, char allow_remove) {
const char *str_label = texty[98];
@ -1618,7 +1639,11 @@ char ask_save_dialog(char *name_buffer, size_t name_size, char allow_remove) {
}
redraw_window();
goto_control(10);
send_message(E_ADD,E_KEYBOARD,save_dialog_keyboards);
send_message(E_ADD,E_MOUSE,save_dialog_keyboards);
escape();
send_message(E_DONE,E_KEYBOARD,save_dialog_keyboards);
send_message(E_DONE,E_MOUSE,save_dialog_keyboards);
get_value(0,10,name_buffer);
char ret = o_aktual->id==40?2:o_aktual->id==30?1:0;
close_current();

View file

@ -7,12 +7,12 @@ Jan Virt
*head
Game design and Story
*name
Jinřich Rohlík
Jin©ich Rohl¡k
*head
Program
*name
Ondřej Novák
Ond©ej Nov k
*head
Environment concept art
@ -27,71 +27,71 @@ Daniel Falta
*head
2D Graphics
*name
Karel Matějka
Karel Matˆjka
Peter Koubek
*head
3D Graphics
*name
Karel Matějka
Karel Matˆjka
*head
Animations
*name
Daniel Falta
Karel Matějka
Karel Matˆjka
*head
Illustrations
*name
Daniel Falta
Karel Matějka
Karel Matˆjka
*head
Fonts
*name
Ondřej Novák
Karel Matějka
Ond©ej Nov k
Karel Matˆjka
*head
Music
*name
Michal Stupka
Jakub Preclík
Petr Třebický
Martin Matějka (outro)
Jakub Precl¡k
Petr T©ebick˜
Martin Matˆjka (outro)
*head
Sound effects
*name
Jindřich Rohlík
Jind©ich Rohl¡k
*head
Level design
*name
Jindřich Rohlík
Jind©ich Rohl¡k
*head
Production
*name
Jindřich Rohlík
Jind©ich Rohl¡k
*head
Betatesting
*name
Michal Maršál
Tomáš Třebický
Jakub Motyčka
Jan Císař
Michal Máčel
Zbyněk Pochman
Michal Mar¨ l
Tom ¨ T©ebick˜
Jakub Motyka
Jan C¡sa©
Michal M ‡el
Zbynˆk Pochman
*head
Special thanks
*name
Jan Virt and Václav Provazník
Jan Virt and V clav Provazn¡k
for their help during level design
Marek Vondrák for graphics library in DOS version
Marek Vondr k for graphics library in DOS version
Dalibor Strak for lending us Gravis Ultrasound
FTL for first real square-based dungeon
*konec

View file

@ -2,39 +2,40 @@
*line 10
*TEXT
*SPEED 8
You ascended to the highest floor of Skeldal, the magical
tower built by five fallen mages, former
disciples of the mage Nimeth, to protect themselves while
immersed in the preparation of their ultimate spell, which
is to open the gates to forbidden dimensions.
Your party, with the Sword of Retribution, forged for them by a demon
dwelling in the midst of the Labyrinth of Singing Waters, stormed into
the guarded chamber, on whose purple stone floor a
pentagram was carved, and caused a massacre among the mages, exhausted
by the preparation of the demanding spell. You disrupted
the circle, which had been maintained for many months by the slain mages,
and which was essential for the spell's completion.
It was, however, at the last moment. The spell was practically
finished at the time of your intrusion, and the mana-soaked ground
began to crack under the pressure of the monsters trying
to break through from the underground spaces. Your strongest warrior
raised the Sword of Retribution for the last time and with a mighty throw plunged it
hilt-deep into the chest of the first demon that burst through from another
dimension.
Thus you completed your mission and restored hope for the future to this world.
Life began to return to Rovenland,
and this small island in the middle of the Dragon Sea once again became
an important trading center. The three heroes who emerged
from the Krow-Kane ritual returned to where they were summoned from.
Roland became a respected merchant in Caredbar, Gralt journeyed
after another obscure legend to the fire land of Hadim, and Erik returned
to his father, whom he helped in the library for several years
before departing with a merchant ship to the
great continent.
The great adventure, destined from the beginning of ages,
has ended. The endless battle of good and evil, the forces
of light and darkness, which creatures of all races and nations will
You ascended to the highest floor of Skeldal, the magical tower
built by five fallen mages, former disciples of the mage Nimeth,
to protect themselves while immersed in the preparation
of their ultimate spell, which is to open the gates to forbidden
dimensions. Your party, with the Sword of Retribution, forged
for them by a demon dwelling in the midst of the Labyrinth
of Singing Waters, stormed into the guarded chamber, on whose
purple stone floor a pentagram was carved, and caused
a massacre among the mages, exhausted by the preparation of
the demanding spell. You disrupted the circle, which had been
maintained for many months by the slain mages, and which was
essential for the spell's completion. It was, however, at
the last moment. The spell was practically finished at the time
of your intrusion, and the mana-soaked ground began to crack
under the pressure of the monsters trying to break through
from the underground spaces. Your strongest warrior raised
the Sword of Retribution for the last time and with a mighty
throw plunged it hilt-deep into the chest of the first demon
that burst through from another dimension. Thus you completed
your mission and restored hope for the future to this world.
Life began to return to Rovenland, and this small island in
the middle of the Dragon Sea once again became an important
trading center. The three heroes who emerged from
the Krow-Kane ritual returned to where they were summoned
from. Roland became a respected merchant in Caredbar, Gralt
journeyed after another obscure legend to the fire land of
Hadim, and Erik returned to his father, whom he helped in
the library for several years before departing with a merchant
ship to the great continent.
The great adventure, destined from the beginning of ages, has
ended. The endless battle of good and evil, the forces of light
and darkness, which creatures of all races and nations will
have to wage until the very end of eternity.
And by the way, the password for the maps is: Věk nových Bohů
*KONECSUB
*KONECSUB

View file

@ -1,5 +1,6 @@
id,string
0,"A connected controller has been found|To activate the controller, press any button on the controller"
0,"A connected controller has been found
To activate the controller, press any button on the controller"
1,FORWARD TRACK06.MUS TRACK07.MUS
2,STRENGTH: %d-%d
3,MAGIC: %d-%d
@ -44,7 +45,7 @@ id,string
48,Start
49,Throw
50,Combat in Progress
51,Overall Music Sounds Treble Bass XBass
51,Overall Music Sounds Treble Bass
52,Stereo Settings (Ultrasound)
53,Swap Sides
54,Output Filter (SBPro)

1 id string
2 0 A connected controller has been found|To activate the controller, press any button on the controller A connected controller has been found To activate the controller, press any button on the controller
3 1 FORWARD TRACK06.MUS TRACK07.MUS
4 1 2 FORWARD TRACK06.MUS TRACK07.MUS STRENGTH: %d-%d
5 2 3 STRENGTH: %d-%d MAGIC: %d-%d
6 3 4 MAGIC: %d-%d SPEED: %d-%d
45 48 49 Start Throw
46 49 50 Throw Combat in Progress
47 50 51 Combat in Progress Overall Music Sounds Treble Bass
48 51 52 Overall Music Sounds Treble Bass XBass Stereo Settings (Ultrasound)
49 52 53 Stereo Settings (Ultrasound) Swap Sides
50 53 54 Swap Sides Output Filter (SBPro)
51 54 55 Output Filter (SBPro) Walking