- 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:
@@ -910,8 +910,8 @@ void put_ter_info_in_dlog() {
|
||||
CDSN(813,4,store_ter.trans_to_what);
|
||||
CDSN(813,8,store_ter.light_radius);
|
||||
cd_set_led_range(813,32,55,store_ter.special);
|
||||
CDSN(813,6,store_ter.flag1);
|
||||
CDSN(813,7,store_ter.flag2);
|
||||
CDSN(813,6,store_ter.flag1.u);
|
||||
CDSN(813,7,store_ter.flag2.u);
|
||||
get_str(str,21,40 + store_ter.special);
|
||||
csit(813,67,(char *) str);
|
||||
get_str(str,21,80 + store_ter.special);
|
||||
@@ -949,7 +949,7 @@ bool save_ter_info() {
|
||||
else if (store_ter.special == TER_SPEC_DANGEROUS) {
|
||||
if (cre(i,0,256,"First special flag must be from 0 to 8.","",813) == true) return false;
|
||||
}
|
||||
store_ter.flag1 = CDGN(813,6);
|
||||
store_ter.flag1.u = CDGN(813,6);
|
||||
|
||||
i = CDGN(813,7);
|
||||
if (store_ter.special == TER_SPEC_TOWN_ENTRANCE) {
|
||||
@@ -958,7 +958,7 @@ bool save_ter_info() {
|
||||
else if ((store_ter.special == TER_SPEC_DAMAGING) || (store_ter.special == TER_SPEC_DANGEROUS)) {
|
||||
if (cre(i,0,256,"Second special flag must be from 0 to 100.","",813) == true) return false;
|
||||
}
|
||||
store_ter.flag2 = CDGN(813,7);
|
||||
store_ter.flag2.u = CDGN(813,7);
|
||||
|
||||
i = CDGN(813,4);
|
||||
if (cre(i,0,255,"Transform To What must be from 0 to 255.","",813) == true) return false;
|
||||
|
@@ -217,16 +217,16 @@ void init_dialogs(){
|
||||
}
|
||||
|
||||
short get_small_icon(ter_num_t ter){
|
||||
short icon;
|
||||
short icon = -1;
|
||||
switch(scenario.ter_types[ter].special){
|
||||
case TER_SPEC_NONE:
|
||||
icon = scenario.ter_types[ter].flag1;
|
||||
icon = scenario.ter_types[ter].flag1.s;
|
||||
break;
|
||||
case TER_SPEC_CHANGE_WHEN_STEP_ON:
|
||||
icon = 23;
|
||||
break;
|
||||
case TER_SPEC_DAMAGING:
|
||||
switch(scenario.ter_types[ter].flag3){
|
||||
switch(scenario.ter_types[ter].flag3.u){
|
||||
case DAMAGE_WEAPON:
|
||||
icon = 40;
|
||||
break;
|
||||
@@ -260,15 +260,15 @@ short get_small_icon(ter_num_t ter){
|
||||
icon = -1;
|
||||
break;
|
||||
case TER_SPEC_DANGEROUS:
|
||||
switch(scenario.ter_types[ter].flag3){
|
||||
switch(scenario.ter_types[ter].flag3.u){
|
||||
case STATUS_POISONED_WEAPON: // TODO: Do something here
|
||||
break;
|
||||
case STATUS_BLESS: // TODO: Do something here
|
||||
case STATUS_BLESS_CURSE: // TODO: Do something here (check flag1 to determine whether bless or curse)
|
||||
break;
|
||||
case STATUS_POISON:
|
||||
icon = 35;
|
||||
break;
|
||||
case STATUS_HASTE: // TODO: Do something here
|
||||
case STATUS_HASTE_SLOW: // TODO: Do something here (check flag1 to determine whether haste or slow)
|
||||
break;
|
||||
case STATUS_INVULNERABLE: // TODO: Do something here
|
||||
break;
|
||||
@@ -293,10 +293,6 @@ short get_small_icon(ter_num_t ter){
|
||||
case STATUS_ACID:
|
||||
icon = 41;
|
||||
break;
|
||||
case 14: // bless TODO: Do something here
|
||||
break;
|
||||
case 15: // haste TODO: Do something here
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case TER_SPEC_CRUMBLING:
|
||||
@@ -306,15 +302,15 @@ short get_small_icon(ter_num_t ter){
|
||||
icon = 30;
|
||||
break;
|
||||
case TER_SPEC_UNLOCKABLE:
|
||||
if (scenario.ter_types[ter].flag2 >= 5)
|
||||
icon = (scenario.ter_types[ter].flag2 == 10) ? 32 : 31;
|
||||
if (scenario.ter_types[ter].flag2.u >= 5)
|
||||
icon = (scenario.ter_types[ter].flag2.u == 10) ? 32 : 31;
|
||||
else icon = 30;
|
||||
break;
|
||||
case TER_SPEC_IS_A_SIGN:
|
||||
icon = 26;
|
||||
break;
|
||||
case TER_SPEC_CALL_SPECIAL:
|
||||
icon = scenario.ter_types[ter].flag3;
|
||||
icon = scenario.ter_types[ter].flag3.s;
|
||||
break;
|
||||
case TER_SPEC_IS_A_CONTAINER:
|
||||
icon = 36;
|
||||
@@ -323,7 +319,7 @@ short get_small_icon(ter_num_t ter){
|
||||
icon = -1;
|
||||
break;
|
||||
case TER_SPEC_CONVEYOR:
|
||||
switch(scenario.ter_types[ter].flag1){ // TODO: Consider the other four possible directions
|
||||
switch(scenario.ter_types[ter].flag1.u){ // TODO: Consider the other four possible directions
|
||||
case DIR_N:
|
||||
icon = 27;
|
||||
break;
|
||||
@@ -348,7 +344,7 @@ short get_small_icon(ter_num_t ter){
|
||||
icon = -1;
|
||||
break;
|
||||
case TER_SPEC_CALL_SPECIAL_WHEN_USED:
|
||||
icon = scenario.ter_types[ter].flag3;
|
||||
icon = scenario.ter_types[ter].flag3.s;
|
||||
break;
|
||||
default:
|
||||
icon = -1;
|
||||
|
Reference in New Issue
Block a user