Simple adv3 Aha!

Situation: your massive game is already created. You could have dozens or hundreds of locations, a couple thousand vocab objects. Scattered all through your code could be objects (besides Decorations and Distants, which can be class-modified…) that make use of dobjFor(Default) or iobjFor(Default). But at this late hour, you’d like to create a verb or three that have all game objects in scope (whether for testing, or some kind of meta-verb like TravelTo).
Oops! You’d like your new verb to give its own failure messages to any object it’s applied to (or succeed), but if a player uses the verb on an object with the dobjFor(Default), the Default will respond. To wipe out the Default annoyances without visiting each instance in the source and overriding the new verb, simply do this:

DefineTAction(NewVerb)
   callCatchAllProp(a,b,c,d) { return nil; }
;

Done! NewVerbAction won’t even check to see if the dobj defines a Default… it’ll just use its own handling.

4 Likes

I’m basically checking out my window every week for fire on the horizon, heralding your game releasing and making absolute waves because of it’s sheer scale.

4 Likes

Ha ha! It was never created to be a “bigggg” game… I just innocently and naively followed my ideas, and then realized too late what an ocean of implementation came with it. (It’s after all my first programming project.) But it’s being released in IFComp, so you can put the window on pause until then :sweat_smile:

3 Likes

This is still absolutely incredible whenever I think about it. You’ve learned a lot from this.

4 Likes