… | |
… | |
815 | CLEAR_FLAG (op, FLAG_WIZCAST); |
815 | CLEAR_FLAG (op, FLAG_WIZCAST); |
816 | } |
816 | } |
817 | break; |
817 | break; |
818 | |
818 | |
819 | case KW_friendly: |
819 | case KW_friendly: |
820 | GET_FLAG (op, FLAG_FRIENDLY); |
820 | if (thawer.get_sint32 ()) |
821 | //TODO: move to check_object or so |
821 | if (op->type != PLAYER) |
822 | if (op->type != PLAYER && QUERY_FLAG (op, FLAG_FRIENDLY)) |
|
|
823 | add_friendly_object (op); |
822 | add_friendly_object (op); |
|
|
823 | |
824 | break; |
824 | break; |
825 | |
825 | |
826 | case KW_monster: GET_FLAG (op, FLAG_MONSTER); break; |
826 | case KW_monster: GET_FLAG (op, FLAG_MONSTER); break; |
827 | case KW_neutral: GET_FLAG (op, FLAG_NEUTRAL); break; |
827 | case KW_neutral: GET_FLAG (op, FLAG_NEUTRAL); break; |
828 | case KW_no_attack: GET_FLAG (op, FLAG_NO_ATTACK); break; |
828 | case KW_no_attack: GET_FLAG (op, FLAG_NO_ATTACK); break; |
829 | case KW_no_damage: GET_FLAG (op, FLAG_NO_DAMAGE); break; |
829 | case KW_no_damage: GET_FLAG (op, FLAG_NO_DAMAGE); break; |
|
|
830 | case KW_obj_original: GET_FLAG (op, FLAG_OBJ_ORIGINAL); break; |
830 | case KW_generator: GET_FLAG (op, FLAG_GENERATOR); break; |
831 | case KW_generator: GET_FLAG (op, FLAG_GENERATOR); break; |
831 | case KW_use_content_on_gen: GET_FLAG (op, FLAG_CONTENT_ON_GEN); break; |
832 | case KW_use_content_on_gen: GET_FLAG (op, FLAG_CONTENT_ON_GEN); break; |
832 | case KW_is_thrown: GET_FLAG (op, FLAG_IS_THROWN); break; |
833 | case KW_is_thrown: GET_FLAG (op, FLAG_IS_THROWN); break; |
833 | case KW_auto_apply: GET_FLAG (op, FLAG_AUTO_APPLY); break; |
834 | case KW_auto_apply: GET_FLAG (op, FLAG_AUTO_APPLY); break; |
834 | case KW_see_invisible: GET_FLAG (op, FLAG_SEE_INVISIBLE); break; |
835 | case KW_see_invisible: GET_FLAG (op, FLAG_SEE_INVISIBLE); break; |
… | |
… | |
1266 | KW_berserk, |
1267 | KW_berserk, |
1267 | KW_neutral, |
1268 | KW_neutral, |
1268 | /* 100 */ |
1269 | /* 100 */ |
1269 | KW_no_attack, |
1270 | KW_no_attack, |
1270 | KW_no_damage, |
1271 | KW_no_damage, |
1271 | KW_NULL, |
1272 | KW_obj_original, |
1272 | KW_NULL, |
1273 | KW_NULL, |
1273 | KW_activate_on_push, |
1274 | KW_activate_on_push, |
1274 | KW_activate_on_release, |
1275 | KW_activate_on_release, |
1275 | KW_is_water, |
1276 | KW_is_water, |
1276 | KW_use_content_on_gen, |
1277 | KW_use_content_on_gen, |
1277 | KW_NULL, |
1278 | KW_NULL, |
1278 | KW_is_buildable, |
1279 | KW_is_buildable, |
1279 | /* 110 */ |
1280 | /* 110 */ |
1280 | KW_destroy_on_death, |
1281 | KW_destroy_on_death, |
|
|
1282 | KW_NULL, |
1281 | }; |
1283 | }; |
1282 | |
1284 | |
1283 | int i; |
1285 | int i; |
1284 | |
1286 | |
1285 | /* This saves the key/value lists. We do it first so that any |
1287 | /* This saves the key/value lists. We do it first so that any |
1286 | * keys that match field names will be overwritten by the loader. |
1288 | * keys that match field names will be overwritten by the loader. |
1287 | */ |
1289 | */ |
1288 | for (key_value *my_field = op->key_values; my_field != NULL; my_field = my_field->next) |
1290 | for (key_value *my_field = op->key_values; my_field; my_field = my_field->next) |
1289 | { |
1291 | { |
1290 | /* Find the field in the opposing member. */ |
1292 | /* Find the field in the opposing member. */ |
1291 | key_value *arch_field = get_ob_key_link (tmp, my_field->key); |
1293 | key_value *arch_field = get_ob_key_link (tmp, my_field->key); |
1292 | |
1294 | |
1293 | /* If there's no partnering field, or it's got a different value, save our field. */ |
1295 | /* If there's no partnering field, or it's got a different value, save our field. */ |