… | |
… | |
509 | { |
509 | { |
510 | keyword kw = thawer.get_kv (); |
510 | keyword kw = thawer.get_kv (); |
511 | |
511 | |
512 | switch (kw) |
512 | switch (kw) |
513 | { |
513 | { |
|
|
514 | case KW_Object: // uppercase alias |
514 | case KW_object: |
515 | case KW_object: |
515 | thawer.get (op->name); |
516 | thawer.get (op->name); |
516 | |
517 | |
517 | if (op->arch != NULL) |
518 | if (op->arch != NULL) |
518 | op->arch->name = op->name; |
519 | op->arch->name = op->name; |
… | |
… | |
624 | op->move_slow |= MOVE_WALK; |
625 | op->move_slow |= MOVE_WALK; |
625 | thawer.get (op->move_slow_penalty); |
626 | thawer.get (op->move_slow_penalty); |
626 | break; |
627 | break; |
627 | |
628 | |
628 | case KW_face: |
629 | case KW_face: |
|
|
630 | if (const char *str = thawer.get_str ()) |
629 | op->face = &new_faces[FindFace (thawer.get_str (), 0)]; |
631 | op->face = &new_faces[FindFace (str, 0)]; |
|
|
632 | else |
|
|
633 | op->face = 0; |
630 | break; |
634 | break; |
631 | |
635 | |
632 | case KW_x: thawer.get (op->x); break; |
636 | case KW_x: thawer.get (op->x); break; |
633 | case KW_y: thawer.get (op->y); break; |
637 | case KW_y: thawer.get (op->y); break; |
|
|
638 | case KW_Str: // uppercase alias |
634 | case KW_str: thawer.get (op->stats.Str); break; |
639 | case KW_str: thawer.get (op->stats.Str); break; |
|
|
640 | case KW_Dex: // uppercase alias |
635 | case KW_dex: thawer.get (op->stats.Dex); break; |
641 | case KW_dex: thawer.get (op->stats.Dex); break; |
|
|
642 | case KW_Con: // uppercase alias |
636 | case KW_con: thawer.get (op->stats.Con); break; |
643 | case KW_con: thawer.get (op->stats.Con); break; |
|
|
644 | case KW_Wis: // uppercase alias |
637 | case KW_wis: thawer.get (op->stats.Wis); break; |
645 | case KW_wis: thawer.get (op->stats.Wis); break; |
|
|
646 | case KW_Cha: // uppercase alias |
638 | case KW_cha: thawer.get (op->stats.Cha); break; |
647 | case KW_cha: thawer.get (op->stats.Cha); break; |
|
|
648 | case KW_Int: // uppercase alias |
639 | case KW_int: thawer.get (op->stats.Int); break; |
649 | case KW_int: thawer.get (op->stats.Int); break; |
|
|
650 | case KW_Pow: // uppercase alias |
640 | case KW_pow: thawer.get (op->stats.Pow); break; |
651 | case KW_pow: thawer.get (op->stats.Pow); break; |
641 | case KW_hp: thawer.get (op->stats.hp); break; |
652 | case KW_hp: thawer.get (op->stats.hp); break; |
642 | case KW_maxhp: thawer.get (op->stats.maxhp); break; |
653 | case KW_maxhp: thawer.get (op->stats.maxhp); break; |
643 | case KW_sp: thawer.get (op->stats.sp); break; |
654 | case KW_sp: thawer.get (op->stats.sp); break; |
644 | case KW_maxsp: thawer.get (op->stats.maxsp); break; |
655 | case KW_maxsp: thawer.get (op->stats.maxsp); break; |
… | |
… | |
965 | |
976 | |
966 | case KW_editable: |
977 | case KW_editable: |
967 | case KW_editor_folder: |
978 | case KW_editor_folder: |
968 | break; |
979 | break; |
969 | |
980 | |
|
|
981 | case KW_More: // uppercase alias |
970 | case KW_more: |
982 | case KW_more: |
971 | /* We need to record that this is a multipart object, |
983 | /* We need to record that this is a multipart object, |
972 | * so the calling function can glue things back together |
984 | * so the calling function can glue things back together |
973 | */ |
985 | */ |
974 | ismore = 1; |
986 | ismore = 1; |
… | |
… | |
996 | thawer.line += strlen (thawer.line) + 1; |
1008 | thawer.line += strlen (thawer.line) + 1; |
997 | |
1009 | |
998 | break; |
1010 | break; |
999 | |
1011 | |
1000 | default: |
1012 | default: |
1001 | printf ("kw abort %d\n", kw);//D |
1013 | printf ("kw abort %s\n", keyword_str [kw]);//D |
1002 | abort (); |
1014 | abort (); |
1003 | } |
1015 | } |
1004 | } |
1016 | } |
1005 | } |
1017 | } |
1006 | |
1018 | |
… | |
… | |
1133 | */ |
1145 | */ |
1134 | if (all_count <=1) return retbuf_all+1; |
1146 | if (all_count <=1) return retbuf_all+1; |
1135 | else return retbuf+1; |
1147 | else return retbuf+1; |
1136 | } |
1148 | } |
1137 | |
1149 | |
1138 | |
|
|
1139 | // compare *op against *tmp and output differences |
1150 | // compare *op against *tmp and output differences |
1140 | void |
1151 | void |
1141 | put (object_freezer &f, object *op, object *tmp) |
1152 | put (object_freezer &f, object *op, object *tmp) |
1142 | { |
1153 | { |
1143 | int i; |
1154 | int i; |
… | |
… | |
1173 | if (op->lore != tmp->lore) f.put (KW_lore, KW_endlore, op->lore); |
1184 | if (op->lore != tmp->lore) f.put (KW_lore, KW_endlore, op->lore); |
1174 | |
1185 | |
1175 | CMP_OUT (other_arch); |
1186 | CMP_OUT (other_arch); |
1176 | CMP_OUT (face); |
1187 | CMP_OUT (face); |
1177 | |
1188 | |
|
|
1189 | if (!op->face || !op->face->name) |
|
|
1190 | printf ("ERRFACE<%s,%s, face %p,%p, fname%s>\n", &tmp->name, &op->name, tmp->face, op->face, op->face ? &op->face->name : "<noface>");//D |
|
|
1191 | |
1178 | if (op->animation_id != tmp->animation_id) |
1192 | if (op->animation_id != tmp->animation_id) |
1179 | if (op->animation_id) |
1193 | if (op->animation_id) |
1180 | { |
1194 | { |
1181 | f.put (KW_animation, animations[GET_ANIM_ID (op)].name); |
1195 | f.put (KW_animation, animations[GET_ANIM_ID (op)].name); |
1182 | |
1196 | |
1183 | if (!QUERY_FLAG (op, FLAG_ANIMATE)) |
1197 | if (!QUERY_FLAG (op, FLAG_ANIMATE)) |
1184 | f.put (KW_is_animated, 0); |
1198 | f.put (KW_is_animated, (sint32)0); |
1185 | } |
1199 | } |
1186 | else |
1200 | else |
1187 | f.put (KW_animation, "NONE"); |
1201 | f.put (KW_animation, (const char *)0); |
1188 | |
1202 | |
1189 | CMP_OUT2 (str , stats.Str); |
1203 | CMP_OUT2 (str , stats.Str); |
1190 | CMP_OUT2 (dex , stats.Dex); |
1204 | CMP_OUT2 (dex , stats.Dex); |
1191 | CMP_OUT2 (con , stats.Con); |
1205 | CMP_OUT2 (con , stats.Con); |
1192 | CMP_OUT2 (wis , stats.Wis); |
1206 | CMP_OUT2 (wis , stats.Wis); |