
- Dying to a trap while attempting to open a container won't display the "get items in container" dialog with no alive character anymore. - Casting the priest Light spell now updates the surrounding areas automatically (like Light and Long Light mage spells; moving or waiting isn't required anymore). - Debug and Ghost mode are now turned off when loading a game. - The shop scrolling bar is now properly cleaned up when loading a game while shopping. - Items are now automatically combined when identified in a shop. To avoid any loss of information, the game now gives the identified item name in the message window (format : "Your item is identified. (full_item_name)" - If an "active" character (i.e solo fighting) is incapacitated (AP reduced to 0 because of webs, sleep, paralysis, etc) the rest of the party (if present) is now activated the next turn. - Entering a space containing the special node number 50 won't "force move" the party anymore. - Added a compatibility option (mainly testing purpose) : "specials are triggered when on boat". - The restart option of the death menu now works as intended. - Finally renamed the "Heal All" monster priest spell from "Full Heal" to "Revive Self". That should prevent any further confusion. - Using items now always updates the ap counter. - For the sake of consistency : changed labels "Power Potion" to "Energy Potion" potions in the Alchemy menu. - Redrawing the screen is now correctly handled by specials in all mode (e.g a special that changes a terrain will correctly redraw the screen, even if it was called by looking or moving). Scenario Editor : - Redid the custom pictures drawing implementation : custom pictures should now always appears and redraw (terrain, animated terrains, monsters, items, preset items, ...). - It is now possible to directly give the "Drain missiles" ability to bows and crossbows (use the "Weapon Ability" menu). Chokboyz git-svn-id: http://openexile.googlecode.com/svn/trunk@160 4ebdad44-0ea0-11de-aab3-ff745001d230
119 lines
1.8 KiB
C++
119 lines
1.8 KiB
C++
|
|
#include <windows.h>
|
|
#include "global.h"
|
|
#include "math.h"
|
|
#include <stdlib.h>
|
|
|
|
extern char scen_strs[160][256];
|
|
extern char scen_strs2[110][256];
|
|
extern char talk_strs[170][256];
|
|
extern char town_strs[180][256];
|
|
extern Boolean give_delays;
|
|
unsigned long anim_ticks = 0;
|
|
BOOL do_choose_anim = FALSE;
|
|
BOOL play_anim=FALSE;
|
|
|
|
RECT RECT16::rect32()
|
|
{
|
|
RECT tmp;
|
|
tmp.left = left;
|
|
tmp.top = top;
|
|
tmp.right = right;
|
|
tmp.bottom = bottom;
|
|
return tmp;
|
|
}
|
|
|
|
RECT16::RECT16 (const RECT & tmp)
|
|
{
|
|
left = tmp.left;
|
|
top = tmp.top;
|
|
right = tmp.right;
|
|
bottom = tmp.bottom;
|
|
}
|
|
|
|
RECT16 & RECT16::operator=(const RECT & tmp)
|
|
{
|
|
left = tmp.left;
|
|
top = tmp.top;
|
|
right = tmp.right;
|
|
bottom = tmp.bottom;
|
|
return (*this);
|
|
}
|
|
|
|
POINT MAKEPOINT(LONG lParam)
|
|
{
|
|
POINT point;
|
|
|
|
point.x = LOWORD(lParam);
|
|
point.y = HIWORD(lParam);
|
|
|
|
return point;
|
|
}
|
|
|
|
short get_ran (short times,short min,short max)
|
|
{
|
|
short store;
|
|
short i, to_ret = 0;
|
|
|
|
if ((max - min + 1) == 0)
|
|
return 0;
|
|
for (i = 1; i < times + 1; i++) {
|
|
store = rand() % (max - min + 1);
|
|
to_ret = to_ret + min + store;
|
|
}
|
|
return to_ret;
|
|
}
|
|
|
|
short s_pow(short x,short y)
|
|
{
|
|
return (short) pow((double) x, (double) y);
|
|
}
|
|
|
|
short dist(location p1,location p2)
|
|
{
|
|
return (short) sqrt((double)((p1.x - p2.x) * (p1.x - p2.x) +
|
|
(p1.y - p2.y) * (p1.y - p2.y)));
|
|
}
|
|
|
|
short minmax(short min,short max,short k)
|
|
{
|
|
if (k < min)
|
|
return min;
|
|
if (k > max)
|
|
return max;
|
|
return k;
|
|
}
|
|
|
|
short abs(short x)
|
|
{
|
|
if (x < 0)
|
|
return x * -1;
|
|
return x;
|
|
}
|
|
void Delay(short val,long *dummy)
|
|
{
|
|
long then,now,wait_val;
|
|
|
|
wait_val = (long) val;
|
|
wait_val = wait_val * 16;
|
|
then = (long)GetCurrentTime();
|
|
now = then;
|
|
while (now - then < wait_val) {
|
|
now = (long) GetCurrentTime();
|
|
}
|
|
}
|
|
|
|
void beep()
|
|
{
|
|
long dummy;
|
|
|
|
MessageBeep(MB_OK);
|
|
Delay(200,&dummy);
|
|
|
|
}
|
|
|
|
void SysBeep(short)
|
|
{
|
|
MessageBeep(MB_ICONQUESTION);
|
|
}
|