DavidKinder / Inform6

The latest version of the Inform 6 compiler, used for generating interactive fiction games.
http://inform-fiction.org/
Other
199 stars 32 forks source link

Update some veneer routines for v3 #217

Closed erkyrath closed 1 year ago

erkyrath commented 1 year ago

Fix the v3 object-table math in RAPr(), and also CPTab(), which is only called from RA__Pr().

This fixes the behavior of Obj.BaseClass::prop in v3.


Mark CAPr() and ClMs() as compile-time errors in v3.

This only affects v3 games which try to do obj.prop(). Such a call already generated messy compile-time errors:

Error: Opcode unavailable in this Z-machine version: "check_arg_count"

Now it produces a more meaningful error:

Error: Object message calls are not supported in v3.

If the game or library replaces CAPr() and ClMs() with working code, the veneer functions will be omitted and there will be no error.

erkyrath commented 1 year ago

Fixes https://github.com/DavidKinder/Inform6/issues/215 .

erkyrath commented 1 year ago

Test is in https://github.com/erkyrath/Inform6-Testing/tree/v3veneer .