
Changelog : Classic Blades of Exile version 1.0 : - Added a new item ability : Call a scenario special when using the item. The special called is specified by the ability strength. The type of scenario to call depends of the magic_use_type (the boxes from help pc (0) to harm all (4)) : 0 is only local, 1 is town local and out global, 2 is town global and out local and 3 is only global. If the number of charge is greater than 0, then using the item takes one charge. If not, the item can be used at will. - Changed the "Set SDF" debug command to display the value of the specified SDF if value to set it to is -1 (BoA style). - Added a missing compatibility switch from the introduced "Specials interrupt wait/rest" feature. - Misc. battlefield adjustment (forest battlefield doesn't show a road anymore, road battlefields appear correctly, cave bridge now has cave trims, ...) - Fixed a bug where an absent boat or horse could prevent a pc from entering a square while in outdoor combat. - Trims now use the next terrain type (cave, grass, mountain) when drawn. - Fixed a potential negative pointer to an array. - Readded Spidweb logo intro sound. - Event Timers will now triggers even when resting (compatibility switch available) - Stairway can now be called in any mode except outdoor : town, looking, talking, even fighting (put in fight mode at destination). - The three basics scenarios are no longer listed in the custom scenario list. - Talking mode : fixed a typo which would prevent the keyword "name" from giving the name dialogue. Added the keywords "buy" (for purchase) and "bye" to end conversation. - Time for event timers is now taken into account correctly while resting Outdoor/ in Inn / via "Have a Rest Node". The "Change Time" node is unchanged. - Added a preference to show a talk entry field next to "Ask About" (like in older Exiles) for direct typing. - Fixed clipping error in the main menu screen for high resolutions. - Added the Ctrl+N shortcut who was advertised but not working. - Gold is now updated after training. - If not using special messages, a "Move Party" node won't mess with talking responses anymore. - Affect Gold/Food nodes could give more gold/food than the maximum allowed. Fixed. - Deleted a check that was destroying items with "type Flag" 15 first. - Calling add_string_to_buf() with an empty string now does nothing. Classic Scenario Editor version 1.0 : - Added a switch to the Scenario Details to bypass the automatic difficulty adjust - Added the ability to play sound asynchronously (use -sound_number instead of sound_number). - If a custom monster pic was shown in the monster dialog and a non-custom monster was loaded via the arrows, the pic was always drawn from the custom sheet. Fixed. - Cancelling while choosing an item ability won't reset the item ability to "No ability" anymore. - Added a "Change Town Lightning" node. (StarEye a.k.a *i) - Loading a town in the main menu won't get into editing mode automatically anymore. - Added an option in the Town Advanced details to prevent the mapping (like in older Exiles). - Added a "Display picture" node, that living up to its name, displays a picture. Bitmaps (BMP) are the only supported format but image can be of any size (be warned that if the image is larger/wider than the screen, it will be streched to fit, meaning a (potentially substancial) loss of quality). The name of the file is search in the scenario special strings (160 to 259) as specified in the node ex1a field. The format must be "[eventual path]filename.bmp". The base search folder is "[folder_the_scenario_is_in]/scenario_name.exr/". - Corrected the "Type Flag" description text (is between 0 and 255). - Modified the "Has Enough Mage Lore?" node into a general statistic check node. (StarEye a.k.a *i) Here is a description of fields : ex1a: how much of skill ex1b: special to call if enough ex2a: skill index (-1 defaults to mage lore to preserve compatibility) 0 - 18 corresponding skill, 19 - Current Health, 20 - Max Health, 21 - Current Spell Points, 22 - Max Spell Points, 23 - Experience, 24 - Skill points, 25 - Level. ex2b: 0, others - cumulative, 1 - highest, 2 - average, 3 - lowest, 10 + x - that PC. (-1 defaults to mage lore to preserve compatibility) - Added a "Has enough species ?" node, which checks if the party has (at least) a specified number of character with a given race. (StarEye a.k.a *i) - Modified the "Give ... spells" nodes to either take (spec.1b = 0) or give (spec.1b = 1) spells and have access to low level spells (spec.1a = 100 + spell_number, with 0 <= spell_number <= 29 ) (StarEye a.k.a *i) - Added an option in Town Advanced Details to prevent Magic Mapping from being cast (already included in the Map Unavailable option). - Added an option in Town Advanced Details that specifies a town special to call if the town becomes hostile (for compatibility reasons the special 0 can't be called in legacy scenarios). - Added a "Change Creature Attitude" node in Town specs : spec.ex1a is the number of the monster in the current town and ex.1b is the attitude to set it to (0 - Friendly, Docile, 1 - Hostile, Type A, 2 - Friendly, Will fight, 3 - Hostile, Type B). - Modified the "Make town hostile" node to "Set Town Attitude". Spec.ex1a is 0 for hostile, 1 for friendly. The dead part (2) is currently non functionnal. Classic Character Editor version 1.1 : - The party is in info bar has been extended an placed under the main window (now that subfolders can used, the scen_name can be pretty long) - In Edit skill, you could decrease health and spell points to negative values. Fixed. Chokboyz git-svn-id: http://openexile.googlecode.com/svn/trunk@113 4ebdad44-0ea0-11de-aab3-ff745001d230
65 lines
3.0 KiB
C
65 lines
3.0 KiB
C
#ifndef _DLOGTOOL_H
|
|
#define _DLOGTOOL_H
|
|
|
|
#include "globvar.h"
|
|
#include "graphutl.h"
|
|
|
|
void cd_set_flag(short dlog_num,short item_num,short flag);
|
|
short cd_get_led(short dlog_num,short item_num);
|
|
short cd_create_custom_dialog(HWND parent,char *strs,short pic_num,short buttons[3]);
|
|
void frame_di(HWND hDlg, short item_num, short val);
|
|
HDC cd_get_dlog_dc(short which_slot);
|
|
short cd_get_active(short dlog_num, short item_num);
|
|
short cd_create_dialog_parent_num(short dlog_num,short parent);
|
|
void cd_init_dialogs();
|
|
short cd_create_dialog(short dlog_num,HWND parent) ;
|
|
short cd_kill_dialog(short dlog_num,short parent_message);
|
|
short cd_process_click(HWND window,POINT the_point, UINT wparam, LONG lparam,short *item);
|
|
short cd_process_syskeystroke(HWND window,UINT wparam, LONG lparam,short *item);
|
|
short cd_process_keystroke(HWND window,UINT wparam, LONG lparam,short *item);
|
|
void cd_attach_key(short dlog_num,short item_num,char key);
|
|
void cd_set_pict(short dlog_num, short item_num, short pict_num);
|
|
void cd_activate_item(short dlog_num, short item_num, short status);
|
|
void cd_set_item_text(short dlog_num, short item_num, char *str);
|
|
void cd_set_item_num(short dlog_num, short item_num, short num);
|
|
void cd_set_led(short dlog_num,short item_num,short state);
|
|
void cd_text_frame(short dlog_num,short item_num,short frame);
|
|
void cd_add_label(short dlog_num, short item_num, char *label, short label_flag);
|
|
void cd_key_label(short dlog_num, short item_num,short loc);
|
|
void cd_draw_item(short dlog_num,short item_num);
|
|
void cd_initial_draw(short dlog_num);
|
|
void cd_draw(short dlog_num);
|
|
void cd_redraw(HWND window);
|
|
void cd_frame_item(short dlog_num, short item_num, short width);
|
|
void cd_erase_item(short dlog_num, short item_num);
|
|
void cd_press_button(short dlog_num, short item_num);
|
|
short cd_get_indices(short dlg_num, short item_num, short *dlg_index, short *item_index);
|
|
short cd_get_dlg_index(short dlog_num);
|
|
short cd_find_dlog(HWND window, short *dlg_num, short *dlg_key);
|
|
short cd_get_item_id(short dlg_num, short item_num);
|
|
void center_window(HWND window);
|
|
RECT get_item_rect(HWND hDlg, short item_num);
|
|
void frame_dlog_rect(HWND hDlg, RECT rect, short val);
|
|
void draw_dialog_graphic(HWND hDlg, RECT rect, short which_g, Boolean do_frame,short win_or_gworld) ;
|
|
void showcursor(Boolean a);
|
|
short cd_create_custom_pic_dialog(HWND parent, HBITMAP picture);
|
|
|
|
void cd_get_text_edit_str(short dlog_num, char *str);
|
|
// NOTE!!! Expects a c string
|
|
inline void cd_set_text_edit_str(short, char *str)
|
|
{ if (edit_box != NULL) SetWindowText(edit_box,str); }
|
|
inline void cdsin(short dlog_num, short item_num, short num)
|
|
{ cd_set_item_num(dlog_num, item_num, num); }
|
|
inline void csit(short dlog_num, short item_num, char *str)
|
|
{ cd_set_item_text( dlog_num, item_num, str); }
|
|
inline void csp(short dlog_num, short item_num, short pict_num)
|
|
{ cd_set_pict( dlog_num, item_num, pict_num); }
|
|
inline void cd_set_edit_focus() { if (edit_box) SetFocus(edit_box); }
|
|
void ModalDialog();
|
|
|
|
extern HWND dlgs[ND];
|
|
|
|
RECT calc_rect(short i, short j);
|
|
|
|
#endif
|