mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-14 10:21:51 -04:00
support for controllers, save effect, fix bugs
This commit is contained in:
parent
9e5faf53de
commit
44e73566b1
16 changed files with 306 additions and 38 deletions
35
libs/gui.c
35
libs/gui.c
|
@ -801,11 +801,21 @@ void set_window_modal(void)
|
|||
waktual->modal=1;
|
||||
}
|
||||
|
||||
void set_object_value(char redraw,OBJREC *o,void *value)
|
||||
static void set_object_value(char redraw,OBJREC *o,const char *value)
|
||||
{
|
||||
if (memcmp(o->data,value,o->datasize))
|
||||
if (strncmp(o->data, value, o->datasize))
|
||||
{
|
||||
memcpy(o->data,value,o->datasize);
|
||||
strcopy_n(o->data,value,o->datasize);
|
||||
if (redraw) redraw_object(o);
|
||||
}
|
||||
}
|
||||
|
||||
static void set_object_value_bin(char redraw,OBJREC *o,const void *value, size_t sz)
|
||||
{
|
||||
size_t cpsz = MIN(o->datasize, sz);
|
||||
if (memcmp(o->data,value,cpsz))
|
||||
{
|
||||
memcpy(o->data,value,cpsz);
|
||||
if (redraw) redraw_object(o);
|
||||
}
|
||||
}
|
||||
|
@ -843,11 +853,24 @@ void set_value(int win_id,int obj_id,void *value)
|
|||
set_object_value((w==waktual),o,value);
|
||||
}
|
||||
|
||||
void set_default(void *value)
|
||||
void set_value_bin(int win_id,int obj_id,void *value, size_t value_size) {
|
||||
OBJREC *o;
|
||||
WINDOW *w;
|
||||
|
||||
if ((o=find_object_desktop(win_id,obj_id,&w))==NULL)return;
|
||||
set_object_value_bin((w==waktual),o,value, value_size);
|
||||
|
||||
}
|
||||
|
||||
void set_default(const char *value)
|
||||
{
|
||||
set_object_value(0,o_end,value);
|
||||
}
|
||||
|
||||
void set_default_bin(const void *value, size_t value_size) {
|
||||
set_object_value_bin(0, o_end, value, value_size);
|
||||
}
|
||||
|
||||
void goto_control(int obj_id)
|
||||
{
|
||||
EVENT_MSG msg;
|
||||
|
@ -864,12 +887,12 @@ void c_set_value(int win_id,int obj_id,int cnst)
|
|||
WINDOW *w;
|
||||
|
||||
if ((o=find_object_desktop(win_id,obj_id,&w))==NULL)return;
|
||||
set_object_value((w==waktual),o,&cnst);
|
||||
set_object_value_bin((w==waktual),o,&cnst,sizeof(cnst));
|
||||
}
|
||||
|
||||
void c_default(int cnst)
|
||||
{
|
||||
set_object_value(0,o_end,&cnst);
|
||||
set_object_value_bin(0,o_end,&cnst,sizeof(cnst));
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue