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.
- 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
- infinite recursion in scripts can cause PCC to crash
- `On Exit Do UI.GotoScreen 4' -- what should that do?
- the sequence
totally confuses the interpreter, because it attempts to associate the
'Else' with the 'Try' at the moment of the 'Abort'.
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.
- Bug? Ships with damage don't start with reduced shield in sim [#196]
- 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.
- 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.
- 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
- Minor problem: when RC is off, PCC still displays RC state, as color
boxes around an invisible button [#195]
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.18)
- Bug: Accessing Colonist.Change gave an "overflow/illegal operation" error
if the number of colonist was not known. Fixed 27/Jan/2013 [#113].
- Minor bug: cargo history included money in the ship mass. Fixed 12/Sep/2011.
- Minor bug: PCC used the wrong formula for native loss due to riots.
- Minor bug: the sector grid was not displayed correctly when the map center
X didn't equal Y. Fixed 29/Jul/2012.
New Features (what should be done afterwards)
- Global actions:
- Set warp, comment, name... (currently doable with `Command')
- send object
- unfold subtrees with single click?
- 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?
- auto task editor
- show how much minerals are missing for ship build on base task
- 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).
- 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?)
- 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
- 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)
- new options:
- interpreter options (debugging aids)
- console log?
- interpreter interface to setup (`Set <word> = <value>')
- tax calculator (Piotr)
- in small zoom levels, make the crosshair smaller (aw9)
- prefix arg "*" and "/" operators
- 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
- 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)
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
Streu@gmx.de - Stefan Reuther