X-Git-Url: https://jxself.org/git/?p=inform.git;a=blobdiff_plain;f=src%2Fobjects.c;fp=src%2Fobjects.c;h=f122c3ec80004f9d50249524ba650babfc58c37e;hp=34e0b8673d5807ef701b5d5c180afc85316002b3;hb=ee3b3a0cb830792c0569230872a0af20eab8bb7b;hpb=8e63120c630c94c598d4e2d6ba823dac59bce8fa diff --git a/src/objects.c b/src/objects.c index 34e0b86..f122c3e 100644 --- a/src/objects.c +++ b/src/objects.c @@ -6,7 +6,7 @@ /* checks syntax and translates such directives into */ /* specifications for the object-maker. */ /* */ -/* Part of Inform 6.40 */ +/* Part of Inform 6.41 */ /* copyright (c) Graham Nelson 1993 - 2022 */ /* */ /* Inform is free software: you can redistribute it and/or modify */ @@ -629,9 +629,7 @@ so many values that the list has overflowed the maximum 32 entries"); { already_present = TRUE; break; } if (already_present == FALSE) - { if (module_switch) - backpatch_zmachine(IDENT_MV, - INDIVIDUAL_PROP_ZA, i_m); + { ensure_memory_list_available(&individuals_table_memlist, i_m+3+individuals_table[z+2]); individuals_table[i_m++] = individuals_table[z]; individuals_table[i_m++] = individuals_table[z+1]; @@ -692,8 +690,7 @@ so many values that the list has overflowed the maximum 32 entries"); z = class_block_offset; while ((individuals_table[z]!=0)||(individuals_table[z+1]!=0)) - { if (module_switch) - backpatch_zmachine(IDENT_MV, INDIVIDUAL_PROP_ZA, i_m); + { ensure_memory_list_available(&individuals_table_memlist, i_m+3+individuals_table[z+2]); individuals_table[i_m++] = individuals_table[z]; individuals_table[i_m++] = individuals_table[z+1]; @@ -1217,8 +1214,6 @@ static void properties_segment_z(int this_segment) if (this_segment == PRIVATE_SEGMENT) individuals_table[i_m] |= 0x80; individuals_table[i_m+1] = this_identifier_number%256; - if (module_switch) - backpatch_zmachine(IDENT_MV, INDIVIDUAL_PROP_ZA, i_m); individuals_table[i_m+2] = 0; } else @@ -1925,11 +1920,10 @@ inconvenience, please contact the maintainers."); } /* "Class" (object 1) has no parent, whereas all other classes are - the children of "Class". Since "Class" is not present in a module, - a special value is used which is corrected to 1 by the linker. */ + the children of "Class". */ if (metaclass_flag) parent_of_this_obj = 0; - else parent_of_this_obj = (module_switch)?MAXINTWORD:1; + else parent_of_this_obj = 1; class_info[no_classes].object_number = class_number; class_info[no_classes].symbol = current_classname_symbol; @@ -2203,7 +2197,7 @@ extern void make_object(int nearby_flag, { int j = i, k = 0; /* Metaclass or class objects cannot be '->' parents: */ - if ((!module_switch) && (i<4)) + if (i<4) continue; if (!glulx_mode) {