- Fixed some bugs in the dialog code.
- Dialogs in the scenario editor now show custom graphics. - Scenario editor now works properly as a Universal binary. - Started refactoring the structs into classes; so far this has only been applied to the game. - Files now show proper icons (applications already did). - Probably other things that I have forgotten. Still not completely stable, but much closer. git-svn-id: http://openexile.googlecode.com/svn/trunk@27 4ebdad44-0ea0-11de-aab3-ff745001d230
This commit is contained in:
280
osx/item.cpp
Normal file
280
osx/item.cpp
Normal file
@@ -0,0 +1,280 @@
|
||||
/*
|
||||
* item.cpp
|
||||
* BoE
|
||||
*
|
||||
* Created by Celtic Minstrel on 20/04/09.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "item.h"
|
||||
#include "boe.consts.h"
|
||||
|
||||
cItemRec k;
|
||||
unsigned char cItemRec::rec_treas_class() const {
|
||||
short tmp = value;
|
||||
if(charges > 0) tmp *= charges;
|
||||
if(tmp >= 15) return 1;
|
||||
if(tmp >= 100) return 2;
|
||||
if(tmp >= 900) return 3;
|
||||
if(tmp >= 2400) return 4;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool cItemRec::is_ident() const {
|
||||
return item_properties & 1;
|
||||
}
|
||||
|
||||
bool cItemRec::is_property() const {
|
||||
return item_properties & 2;
|
||||
}
|
||||
|
||||
bool cItemRec::is_magic() const {
|
||||
return item_properties & 4;
|
||||
}
|
||||
|
||||
bool cItemRec::is_contained() const {
|
||||
return item_properties & 8;
|
||||
}
|
||||
|
||||
bool cItemRec::is_cursed() const {
|
||||
return item_properties & 16;
|
||||
}
|
||||
|
||||
bool cItemRec::is_concealed() const {
|
||||
return item_properties & 32;
|
||||
}
|
||||
|
||||
// Set bit to 1: a |= b
|
||||
// Set bit to 0: a &= ~b
|
||||
// Toggle bit: a ^= b
|
||||
|
||||
void cItemRec::set_ident(bool b) {
|
||||
if(b) item_properties |= 1;
|
||||
else item_properties &= ~1;
|
||||
}
|
||||
|
||||
void cItemRec::set_property(bool b) {
|
||||
if(b) item_properties |= 2;
|
||||
else item_properties &= ~2;
|
||||
}
|
||||
|
||||
void cItemRec::set_magic(bool b) {
|
||||
if(b) item_properties |= 4;
|
||||
else item_properties &= ~4;
|
||||
}
|
||||
|
||||
void cItemRec::set_contained(bool b) {
|
||||
if(b) item_properties |= 8;
|
||||
else item_properties &= ~8;
|
||||
}
|
||||
|
||||
void cItemRec::set_cursed(bool b) {
|
||||
if(b) item_properties |= 16;
|
||||
else item_properties &= ~16;
|
||||
}
|
||||
|
||||
void cItemRec::set_concealed(bool b) {
|
||||
if(b) item_properties |= 32;
|
||||
else item_properties &= ~32;
|
||||
}
|
||||
|
||||
short cItemRec::item_weight() const {
|
||||
short n = charges, w = weight;
|
||||
if (variety == 0)
|
||||
return 0;
|
||||
if(charges > 0){
|
||||
if((variety == 5) || (variety == 6) || (variety == 7) || (variety == 24))
|
||||
return n * w;
|
||||
}
|
||||
return w;
|
||||
}
|
||||
|
||||
cItemRec::cItemRec(){
|
||||
variety = 0;
|
||||
item_level = 0;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 0;
|
||||
ability = 0;
|
||||
ability_strength = 0;
|
||||
type_flag = 0;
|
||||
is_special = 0;
|
||||
value = 0;
|
||||
weight = 0;
|
||||
special_class = 0;
|
||||
item_loc.x = 0;
|
||||
item_loc.y = 0;
|
||||
strcpy(full_name,"");
|
||||
strcpy(name,"");
|
||||
treas_class = 0;
|
||||
item_properties = 0;
|
||||
reserved1 = 0;
|
||||
reserved2 = 0;
|
||||
}
|
||||
|
||||
cItemRec::cItemRec(long preset){
|
||||
ability = 0;
|
||||
ability_strength = 0;
|
||||
type_flag = 0;
|
||||
is_special = 0;
|
||||
special_class = 0;
|
||||
item_loc.x = 0;
|
||||
item_loc.y = 0;
|
||||
treas_class = 0;
|
||||
reserved1 = 0;
|
||||
reserved2 = 0;
|
||||
switch(preset){
|
||||
case 'nife':
|
||||
variety = ITEM_TYPE_ONE_HANDED;
|
||||
item_level = 4;
|
||||
awkward = 0;
|
||||
bonus = 1;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = ITEM_EDGED;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 45;
|
||||
value = 2;
|
||||
weight = 7;
|
||||
strcpy(full_name,"Bronze Knife");
|
||||
strcpy(name,"Knife");
|
||||
set_ident(true);
|
||||
break;
|
||||
case 'buck':
|
||||
variety = ITEM_TYPE_SHIELD;
|
||||
item_level = 1;
|
||||
awkward = 1;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 65;
|
||||
value = 2;
|
||||
weight = 20;
|
||||
strcpy(full_name,"Crude Buckler");
|
||||
strcpy(name,"Buckler");
|
||||
set_ident(true);
|
||||
break;
|
||||
case 'bow ':
|
||||
variety = ITEM_TYPE_BOW;
|
||||
item_level = 0;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 10;
|
||||
value = 15;
|
||||
weight = 20;
|
||||
strcpy(full_name,"Cavewood Bow");
|
||||
strcpy(name,"Bow");
|
||||
set_ident(true);
|
||||
break;
|
||||
case 'arrw':
|
||||
variety = ITEM_TYPE_ARROW;
|
||||
item_level = 12;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 12;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 47;
|
||||
value = 1;
|
||||
weight = 1;
|
||||
strcpy(full_name,"Arrows");
|
||||
strcpy(name,"Arrows");
|
||||
set_ident(true);
|
||||
break;
|
||||
case 'pole':
|
||||
variety = ITEM_TYPE_TWO_HANDED;
|
||||
item_level = 9;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = ITEM_POLE;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 4;
|
||||
value = 10;
|
||||
weight = 20;
|
||||
strcpy(full_name,"Stone Spear");
|
||||
strcpy(name,"Spear");
|
||||
set_ident(true);
|
||||
break;
|
||||
case 'helm':
|
||||
variety = ITEM_TYPE_HELM;
|
||||
item_level = 1;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 66;
|
||||
value = 6;
|
||||
weight = 15;
|
||||
strcpy(full_name,"Leather Helm");
|
||||
strcpy(name,"Helm");
|
||||
set_ident(true);
|
||||
break;
|
||||
case 'food':
|
||||
variety = ITEM_TYPE_FOOD;
|
||||
item_level = 0;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 62;
|
||||
value = 0;
|
||||
weight = 0;
|
||||
strcpy(full_name,"Food");
|
||||
strcpy(name,"Food");
|
||||
set_ident(false);
|
||||
break;
|
||||
case 'spel':
|
||||
variety = ITEM_TYPE_NON_USE_OBJECT;
|
||||
item_level = 0;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 0;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 53;
|
||||
value = 0;
|
||||
weight = 0;
|
||||
strcpy(full_name,"");
|
||||
strcpy(name,"");
|
||||
set_ident(false);
|
||||
break;
|
||||
case 'alch':
|
||||
variety = ITEM_TYPE_POTION;
|
||||
item_level = 0;
|
||||
awkward = 0;
|
||||
bonus = 0;
|
||||
protection = 0;
|
||||
charges = 1;
|
||||
type = 0;
|
||||
magic_use_type = 0;
|
||||
graphic_num = 50;
|
||||
value = 0;
|
||||
weight = 8;
|
||||
strcpy(full_name,"Potion");
|
||||
strcpy(name,"Potion");
|
||||
set_ident(false);
|
||||
set_magic(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user