Planets Command Center -- `Todo' list
This is my `scratchpad', where I remember new ideas and found bugs.
If you ask me for a feature, it will probably wind up here (and probably
disappear till the next release). If something sounds all greek to you,
I have probably just cited an internal property of PCC.
Interpreter Issues
- serialisation: handle "name hints" in VM files
- `ForEach Ship A Do' (needs improved name lookup), likewise for `With'
- `Context' property that returns the current context, e.g., `Ship 10'
- automatic keyword joining (End Sub == EndSub, Try Load == TryLoad)
- `Waypoint.*' should be assignable
- new functions
- a function like Perl's || operator (shorthand for `If(a,a,b)', like
`If(a,b)' roughly equals `a && b')
- `With NewShip(ht,et,bt,bc,tt,tc) Do ...'
- `With NewPlanet(owner,natives,havebase [??]) Do ...'
- more `Build.*' properties on starbases (needed?)
- access to ship history
- hacking VM files (Id in context fields) can cause PCC to crash. Worthwhile
to protect against this?
- scripts started on the ship build screen can't suspend (can't serialize
CBuildOrderContext)
- infinite recursion in scripts can cause PCC to crash
- `On Exit Do UI.GotoScreen 4' -- what should that do?
Bugs & Problems (what should already have been done)
- Bug? qvs00/72 (PHost): warrior info window gets a formula error on a
planet with 281 kt shields, 8 heavy phasers, 14 bays, 9 fighters.
Same thing reported with 281 kt, 8 inpotrons, 8 bays, 11 fighters.
- Graphics glitches (these are probably not worth the trouble):
- text in planet scanner occasionally runs into button bar at bottom.
- starcharts: lock onto ship, Alt-C, Mark. Needs clipping for 16 colors.
- planet: defense: goals: does not update SBD goal when there's no base
- ccbsim: view VCRs from file: left/right: add to sim. Simulator list is
not updated correctly.
- F1->Print->Select->Help->Cancel from control screen will not clip the
object picture correctly.
- Problem? starchart: the bottom panel flickers sometimes; irreproducably.
- Problem? running PCC in real mode and using the `setuid' function to
switch to a race which was sweeped while PCC runs triggers certain
assertions and/or corrupts certain data (Akseli). What?????
- Problem: the starship history seems to forget ships sometimes (Akseli,
Klemens). I have no idea what is causing this; I have encountered it
myself but been unable to reproduce it.
- Problem: ctrl-shift-g doesn't use the modeline, `Shell' doesn't, too.
- Problem: memory leak: SelectionLayers is never freed. Shouldn't be
problematic, though: this is a one-time loss.
- Problem: wormhole direction guessing doesn't seem to work as it should.
- Problem: ship screen: Ctrl-Z does not honor locks.
- Minor problem: an expression such as "gnarf(1,2)" gives the message
"too many parameters", whereas "gnarf(1)" correctly yields "no such
function". The reason is that unknown functions are always tried to be
handled using context-dependant dispatch, but can have one argument
only.
- Minor problem? 'On Foo Do 2' causes '2' to be printed on the console
when invoked as 'RunHook Foo', likewise 'Eval "2"', because the last
command executed is an expression.
Problems I Will Not/Can Not Fix
- Inconvenience: vectors of ships moving across a map border disappear
when the border is not visible. Fixing this isn't easy, as this would
require re-calculating the BBox all the time.
- Inconvenience: Ctrl-Enter sometimes drops a marker instead of moving to
the nearest marked ship. This is a problem with the DOS keyboard driver
which would require a lot of code to work around.
- Minor Problem: upgrading tech from a script does not change base
picture. Does anyone ever notice this?
- Problem: prefix argument is remembered too long (enter prefix, hit an
undefined key -> window disappears, and prefix is applied to next
defined key) (Andreas) This is a design problem which will probably not
be fixed in v1.x.
- Problem? when using CCBSim and PCC with *different* version numbers and
an incomplete pconfig.src, the defaults filled in for the missing
pconfig keys are bogus. Probably not worth bothering with.
- Problem: when using beam-up-multiple to beam up larger amounts, it can
happen that PCC generates commands which are too long and are truncated
by PHost <3.4b or PCC <1.1.7. Commands which exercise the length limit:
- "be 140 T999 D999 M999 S999 C999 $999 N99"
- "be 40 T1000 D1000 M1000 S1000 $1000 N999"
Fixed Bugs (already fixed but still present in v1.1.16)
- Bug: fleet cost comparison used wrong number of torpedo launchers, so
results differed from starship cost calculator. Found by Stefan Marschall.
Fixed 01/Feb/2008.
- Bug: a script performing 'UI.GotoScreen' to the current screen stopped at
that point, until someone triggers execution of scripts again (by opening
the task manager, maybe). Fixed 13/Sep/2008.
- Minor Bug: intercepted RGA messages were not linked to the correct object
for the [G] "Go to" function. Reported by Quirin Herman. Fixed 06/Feb/2008.
- Minor Bug: when a marker sits at the same place as a planet/ship, the FAQ
says to press [V] [F9] to edit the marker comment. This didn't work since
1.0.15, when user keybindings in the starchart were allowed. Fixed
08/Feb/2008 by disabling keybindings when a special mode is active (paint,
move/delete marker, mark range).
- Minor Bug: When PHost was used, sort-ships-by-battle-order sorted all
freighters in the "1000+" category even if they had a numeric friendly
code (simulator was working correctly, though). Fixed 09/Feb/2008.
- Minor bug: when a ship with Tow mission had too little fuel, PCC's
prediction continued without considering the Tow mission and gave a total
fuel usage off-by-a-mile if the towee was very heavy. It now continues
computation like for all other missions. Found by Quirin Herman. Fixed
27/Apr/2008.
- Minor bug: running a script containing 'UI.GotoScreen 2, Id' from
base screen draws a yellow "Auto" frame, because at the time the frame
is drawn, a task is running on the planet. Fixed 13/Sep/2008.
- Minor bug: on temp-50 planets, growth prediction differed from PHost
(999999 != 1000000), caused by imprecision of PCC's floating-point
implementation. Fixed 22/Sep/2008.
- Graphics Glitch: long marker texts could overflow into the ship picture
on the starchart panel. Found by Klemens Reuther. Fixed 08/Feb/2008.
New Features (what should be done afterwards)
- Global actions:
- Set warp, comment, name... (currently doable with `Command')
- send object
- unfold subtrees with single click?
- Undo:
- buy ammo. This can as of 1.1.5 be done with `BuildTorps' or
`BuildFighters'; I'd rather leave the ugly GUI code alone.
- maybe general undo facility?
- function to send a message w/ particular subject line
- "Message" menu: send data transmission; send message; find messages
for this object
- make it more robust wrt. parallel usage of planets clients
- don't crash on `genX.dat' open errors
- lock genX.dat (INT 21/5C) while active
- make fcodes.cc/mission.cc's `r' flag depend on the current value of
`System.Reg', not the built-in registration flags (to allow users to
override the value to see registered fcodes in unregistered games).
- Unpack/Maketurn:
- check for new RSTs periodically? (Hans)
- possibility to call `sweep' from unpack (make `sweep' a script?)
- maketurn from race screen? (would give sense to RST check)
- ship list [L] without visual scanner (aw9)
- mouse click into file viewer opens [F7] -> like in messages
- multi-line comments? (6x40 characters message editor?)
- cargo reservations?
- display maximum tech you can buy (like "maximum" in cargo transfer)
on tech upgrade window (Klemens)
- passcode randomizer for data transfer (is it worthwhile?)
- receive all binary messages at once ([Ctrl-I]?) (worthwhile?)
- support for a "game character set": auto-convert high-ASCII characters in
names and messages 437<->latin1, koi8r<->alt (done in PCC II)
- data transfer of other things
- ships; ship history
- UFOs, (storms)
- drawings (-> savemark.q)
- VPHost data transfers (worthwhile? anyone still using it?)
- KFVCR
- data conversion program
- notesx.dat <> chartx.cc
- EchoView <> PCC <> VPA
- (pview.ntp <> chartx.cc)
- (autox.dat <> vmx.cc -- ugly as autox.dat is broken)
- old chart/new chart
- better handling of invalid files
- if .dat signatures are present, check them (will this help anything?)
- check PHost digests
- exception for XYPLAN.DAT (explore map)
- exception for RACE.NM
- exception for built-in defaults
- warn if inconsistent data (one warning is present now)
- improve handling of HYPing fleets
- extensible alliance screen
- PHCC "srX" fcode
- EXPLMAP "xtern SharePlanets"
- firecloud utility
- prediction of fuel usage more precise (Piotr)
- beam up: "beam up multiple", "buX", "Beam up XXX"
- "lfm" ("fif/fit"?)
- "mkt" (done, 1.1.13)
- hotkey to switch to other race context [Ctrl-Alt-[1234567890ß]] (Piotr)
- switch from starcharts
- different access privileges ("may not write messages, but change
waypoints")
- let outbox stay the same as from original player? (would forbid
sending PHost commands manually...)
- multi-ship cost calculator in ship cost calculator on base?
- theme support (should be easier with new UI)
- show ship damage in cargo xfer (Akseli)
- setup:
- new options:
- interpreter options (debugging aids)
- console log?
- interpreter interface to setup (`Set <word> = <value>')
- tax calculator (Piotr)
- starchart:
- in small zoom levels, make the crosshair smaller (aw9)
- alternate scoring support (how??)
- maybe allow scripts to create new score items, and have a script
parse the VGAscore/PTscore/Uscore/Scoresum/QVS log files
- improved MakeTurn
- use host-specific features for enhanced functionality (optionally)
- `message' for messages to many
- `extmission' for large mission args
- don't use PHost-Winplan-Workaround-Workaround for THost
- get reginfo/templock from existing TRN (simplifies alliances: you
can modify an ally's TRN without changing his reginfo)
- things that will be doable with scripts:
- universal minefield friendly code: send to allies, change notification
(Piotr)
- check for successful "bum" (Piotr) (-> bum.q)
- alternate taxing system
- set waypoint to end without heading (I use auto tasks for this)
- auto-delete allied minefields if minefield alliance exists (Piotr)
- sum next-turn resources on planets (mining, incoming ships) (Piotr)
(-> nextturn.q)
Long-Term Projects (what should be done someday)
- rewrite unpacker so CCUNPACK can be built from PCC source
- rewrite maketurn so that a CCMAKETURN can be built
- rewrite VCR. PVCR support is still only "hacked in"
- swap checkpoints to XMS
- or dynamically half number of checkpoints
- better visualizer
- probably not in PCC I. VCR for PCC II is done and looks greeeeaaaaat.
- rewrite message editor as widget -- grotty hack till now. This will,
however, prevent it from being shared with gh.
- user-settable key bindings
- clipboard
Streu@gmx.de - Stefan Reuther