- Added enums for status and player race, traits, and skills.

- The player race enum has been expanded so that it can also be used as monster race; it's not yet used as such though.
- Additional races Vahnatai, Plant, and Bird added.
- Alter the terrain special flags so that they can be used as signed shorts in the few cases that require it, and changed dangerous terrain to combine the curse/bless and slow/haste cases.
- Fixed an unnoticed error which would have probably prevented monsters from being affected by conveyors.
- Refined the dangerous terrain special ability with more messages and also handling all cases except weapon poison.

git-svn-id: http://openexile.googlecode.com/svn/trunk@79 4ebdad44-0ea0-11de-aab3-ff745001d230
This commit is contained in:
2009-05-29 04:47:54 +00:00
parent 2485e57514
commit 50829034a9
121 changed files with 333 additions and 273 deletions

View File

@@ -741,7 +741,7 @@ void disease_pc(short which_pc,short how_much)
give_help(29,0,0);
}
void sleep_pc(short which_pc,short how_much,short what_type,short adjust)
void sleep_pc(short which_pc,short how_much,eStatus what_type,short adjust)
// higher adjust, less chance of saving
{
short r1,level;
@@ -2078,16 +2078,16 @@ void cast_town_spell(location where) ////
case 20:
if (scenario.ter_types[ter].special == TER_SPEC_UNLOCKABLE){
if (scenario.ter_types[ter].flag2 == 10)
if (scenario.ter_types[ter].flag2.u == 10)
r1 = 10000;
else{
r1 = get_ran(1,1,100) - 5 * stat_adj(who_cast,2) + 5 * univ.town.difficulty;
r1 += scenario.ter_types[ter].flag2 * 7;
r1 += scenario.ter_types[ter].flag2.u * 7;
}
if (r1 < (135 - combat_percent[min(19,ADVEN[who_cast].level)])) {
add_string_to_buf(" Door unlocked. ");
play_sound(9);
univ.town->terrain(where.x,where.y) = scenario.ter_types[ter].flag1;
univ.town->terrain(where.x,where.y) = scenario.ter_types[ter].flag1.u;
}
else {
play_sound(41);
@@ -2144,9 +2144,9 @@ void crumble_wall(location where) // TODO: Add something like this to the spread
if (loc_off_act_area(where) == true)
return;
ter = univ.town->terrain(where.x,where.y);
if (scenario.ter_types[ter].special == TER_SPEC_CRUMBLING && scenario.ter_types[ter].flag3 < 2) {
if (scenario.ter_types[ter].special == TER_SPEC_CRUMBLING && scenario.ter_types[ter].flag3.u < 2) {
play_sound(60);
univ.town->terrain(where.x,where.y) = scenario.ter_types[ter].flag1;
univ.town->terrain(where.x,where.y) = scenario.ter_types[ter].flag1.u;
add_string_to_buf(" Barrier crumbles.");
}
@@ -3166,7 +3166,7 @@ void poison_party(short how_much)
for (i = 0; i < 6; i++)
poison_pc(i,how_much);
}
void affect_pc(short which_pc,short type,short how_much)////
void affect_pc(short which_pc,eStatus type,short how_much)////
//type; // which status to affect
{
@@ -3177,7 +3177,7 @@ void affect_pc(short which_pc,short type,short how_much)////
ADVEN[which_pc].status[type] = max(ADVEN[which_pc].status[type],0);
put_pc_screen();
}
void affect_party(short type,short how_much)
void affect_party(eStatus type,short how_much)
//type; // which status to affect
{
short i;