X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=TODO;h=6abcb59866ad0c68ac07bac9f51b669acfa3d59f;hb=ac88b9c7e15abef4c18fb5eadf23c3e00c7e9966;hp=f8dc544d5af8234867f339f6dc653e322bfb1b38;hpb=0e160a665eeb24d4614ff14e779d1c13bec3e778;p=open-adventure.git diff --git a/TODO b/TODO index f8dc544..6abcb59 100644 --- a/TODO +++ b/TODO @@ -3,13 +3,19 @@ The FORTRANish mess that once was is now mostly idiomatic C. Some issues remain to be cleaned up: -* The remaining shared globals: K, SPK, WD1, WD1X, WD2, WD2X. These are used +* The remaining shared globals: K, WD1, WD1X, WD2, WD2X. These are used rather promiscuously to pass around information that ought to be function - arguments in a modern language. K and SPK are particular offenders + arguments in a modern language. K is a particular offender. -* Remaining unstructured gotos in playermove() and do_command(). +* Remaining unstructured gotos in playermove() and do_command(). The goto L12 + in playermove() is particularly horrible, jumping backwards into the + middle of a loop. + +* In playermove(), why doesn't replacing the global motion number K + with a passed-in argument work? There's some unobvious information + leak here. * The way return values from handlers such as 2012 trigger side effects - based on global state such as K and SPK is nasty. + based on global state is nasty.