1125 |
|
|
1126 |
void init_model() { |
void init_model() { |
1127 |
if (int t=get_type()) { |
if (int t=get_type()) { |
1128 |
char modelname[20]; |
if( t > 3) |
1129 |
sprintf(modelname, "it-crack%d", t); |
SetItem(get_pos(), MakeItem("it-debris")); |
1130 |
set_model(modelname); |
else { |
1131 |
|
char modelname[20]; |
1132 |
|
sprintf(modelname, "it-crack%d", t); |
1133 |
|
set_model(modelname); |
1134 |
|
} |
1135 |
} |
} |
1136 |
else |
else |
1137 |
set_model("invisible"); |
set_model("invisible"); |
1138 |
} |
} |
1139 |
|
void actor_enter(Actor *a) { |
1140 |
|
SendMessage(this, "crack"); |
1141 |
|
Item *it; |
1142 |
|
GridPos p; |
1143 |
|
|
1144 |
|
p = move(get_pos(),enigma::NORTH); |
1145 |
|
it = GetItem(p); |
1146 |
|
|
1147 |
|
if( it) |
1148 |
|
SendMessage( it, "crack"); |
1149 |
|
else |
1150 |
|
SetItem(p, MakeItem("it-crack")); |
1151 |
|
|
1152 |
|
p = move(get_pos(),enigma::EAST); |
1153 |
|
it = GetItem(p); |
1154 |
|
if( it) |
1155 |
|
SendMessage( it, "crack"); |
1156 |
|
else |
1157 |
|
SetItem(p, MakeItem("it-crack")); |
1158 |
|
|
1159 |
|
p = move(get_pos(),enigma::SOUTH); |
1160 |
|
it = GetItem(p); |
1161 |
|
if( it) |
1162 |
|
SendMessage( it, "crack"); |
1163 |
|
else |
1164 |
|
SetItem(p, MakeItem("it-crack")); |
1165 |
|
|
1166 |
|
p = move(get_pos(),enigma::WEST); |
1167 |
|
it = GetItem(p); |
1168 |
|
if( it) |
1169 |
|
SendMessage( it, "crack"); |
1170 |
|
else |
1171 |
|
SetItem(p, MakeItem("it-crack")); |
1172 |
|
} |
1173 |
bool actor_hit(Actor *a) { |
bool actor_hit(Actor *a) { |
1174 |
return false; |
return false; |
1175 |
} |
} |
1176 |
|
void message(const string &msg, const Value &val) { |
1177 |
|
if (msg == "crack") { |
1178 |
|
set_attrib("type", Value(int_attrib("type") + 1)); |
1179 |
|
init_model(); |
1180 |
|
} |
1181 |
|
} |
1182 |
}; |
}; |
1183 |
|
|
1184 |
class Debris : public Item { |
class Debris : public Item { |