| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463 |
- MASTER 11/7/96
- *Skirmish and cap flag carry over bug.
- *Speed boots to anti-aircraft flag.
- *allies reveal fakes
- Badguy -vs- soviet repair glitch
- Building one too many harvester.
- force music on the title page and credit scroll
- Add mouse dead zone around key buttons
- *Harvester getting stuck against a unit that is perpetually trying to scatter (stutter rotating).
- AI base is unit heavy. Should concentrate more on air defenses and selling off old buildings.
- Attack buildings to discourage from attacking base defenses.
- *Longbow not going onto pad even if empty.
- Tanya should laugh when exiting barracks.
- *If dog drops onto impassable terrain, then fake it into a passable cell instead.
- *Keep record of previously existing building to use for computer prerequisite checks.
- *Bias the base center away from the edge of the map.
- *Add "delay before beginning the first attack" to the rules for ai players.
- Add difficulty slider to the skirmish mode.
- Driving over weapons factory door.
- Give rules control to some of the house check and ai function pairs.
- Control engineer repair of bridge by rules file.
- Combine chrono effects into a single event.
- If near capacity, then build a silo.
- HouseClass::Attacked is not multiplay friendly
- Use the return value from the house AI function to regulate the interval between their processing.
- Build MCV (and go into hunt) when no construction yard left.
- Credit scroll scraggs title page.
- Retreat mode with LST
- *AI units sometimes drive to upper left corner
- Sneak peek after intro replay.
- Don't allow more than two allies together (if humans only).
- Fix the Where_To_Go() function so that it prefers under protected zones and zones that are
- closest to the enemy.
- Computer should cause blocking units to move before giving up placing a building.
- Computer should avoid building against the map edge.
- Special build emphasis on the zone that gets attacked.
- Tournament rules:
- > Countdown timer -- game ends with winner who has higher score. If not
- counting down, it should count upward.
- > Display score instead of kills on map display.
- > Handicap assigned to each player?
- > Invulnerable harvester option. Will not be automatically fired
- upon until all refineries destroyed. Also, it cannot overrun
- infantry until then either.
- > Allow disabling of ally option.
- > Ally should be limited to only one other player. Say "Changes allegience to ???" or
- "Turncoats from ??? to ???"
- Clicks on unit production (especially infantry) should be
- queued up (with a number).
- C&C2: Ideas
- > Some advantage to the civilian or mutant villages so that they
- won't likely be destroyed in a multiplayer game. Maybe they plant
- Tiberium.
- > Tiberium should spill from a destroyed harvester.
- > Multiplayer maps should have more than one entrance into the
- likely starting areas for the players. This is needed to make
- complete blocking of access to the base very difficult.
- Audio control slider should have a step rate
- Can harvester detect a stealth tank on the radar map as long as the
- stealth tank is not over tiberium?
- Civilians should run from civilian buildings.
- When ordering to move to a tree, the units don't move at all.
- Transport should not scatter.
- Harvesters should return to refinery instead of scattering. If they are already
- unloading or heading back to refinery, then they shouldn't scatter at all.
- Official maps should be brighter color.
- Detect counterfiet maps.
- Add KN bits for Num, Scroll, and Caps lock toggle keys. This will give more
- information to the ToASCII function for proper keyboard conversion.
- Fire coord for AA guns are off.
- Draw parachute before drawing attached object.
- Patrol to waypoint should clear out any prexisting target so the team members wont
- start to run back to their old target.
- force bases on if cap flag checked and visa versa.
- Boats are not giving out-of-range cursor when selecting a target? Make this controllable
- through the rules.ini file.
- Buildings are all scanned during every foot::percellprocess as well as any
- time a building is drawn that is spied.
- Force attack for mine layer could be "lay mine".
- Need scenario.Start(), Restart(), Reset() functions to control the campaign start,
- next mission start, and restart current mission over functions.
- Break scenario data into two groups. The group that needs to be preserved between scenarios
- and that which is set by the scenario INI file. Both groups should be saved in the saved game.
- The IsTanyaDead and SaveTanya should be in there. There should be two copies of the section
- that is preserved between scenarios. This will allow restarting the scenario.
- Encrypt the message digest for scenario files. Detect whether scenario is custom or
- original version when loading?
- The overlap list could be implemented as a sparse array. Each cell would have a pointer
- to the overlap list handler. when no overlaps exist, the handler gets deleted.
- Optimize INI scanning code. Store only CRC if never going to be written back out? Store
- entry/section CRC values as a sorted array to allow binary search? Use strcmp instead of
- stricmp?
- Thief in hunt mode should go after structures.
- Choose computer to attack based on force comparison? If stronger by certain
- amount, then attack. If weaker than certain amount, then build.
- Progress bargraph on game save/load.
- Longbow shows up for airstrip production?
- Suggest that these get added to the westwood library: _rotl(), ARRAY_SIZE, min(), max(), abs(), Bound()
- Put saving/load of Special and Options into save_misc_values and remove from
- save/load mplayer_values function.
- Why does SessionClass::Save seem to save the same values that save_mplayer_values
- and save_misc_values does.
- Flying debris from an exploding building or vehicle.
- The UnitToTeleport and TimeQuake variables might need to be save/loaded with the game.
- Each class should have an equivalent Build_INI_Entry routine. A generic (save all objects) routine
- could then be written.
- ...or... Need a INI-Put_String with variable parameters.
- Add random animation logic for buildings, vessels, and vehicles.
- If directed to move to the immediately adjacent behind cell, then just back up into it. Anything
- more distant, rotate to normal orientation.
- The MPHType seems obsolete. Just a simple "leptons per game frame" speed value seems
- more appropriate.
- Crosses line triggers may need special handling in some kind of list. They need to have a cell
- attached so that when a unit moves, it can quickly determine if it causes one of these
- trigger types to spring. This is the only trigger type that requires a cell data.
- Need a more efficient way of detecting when a unit crosses line or enters zone trigger event.
- Crack the radio messages into separate handler functions e.g., Radio_Run_Away(), Radio_Over_Out()
- Take close look at findpath logic. Incorporate;
- > Settle for simple path calc when first starting and distant from destination.
- > Escilate path searching when blockage occurs.
- > Reset search aggressiveness when new navcom is assigned.
- > Use common routine when path is block and "What now?" needs to be answered.
- Computer ships SHOULD fire on non-combat buildings when in area guard mode.
- Team AI should have a delay between calls.
- Hires_Load may be obsolete?
- Crosses line trigger is causing problems.
- Check for out of disk space during save. Delete partial save file.
- V04, V05, V07 have more anim frames.
- Put INI reading code within the warhead class object. The warhead object will be
- created by the weapon INI info. It will be named but otherwise undefined. The warhead
- reading code will look up the warhead info based on the name and then fill in the
- values.
- Add override flag so unit name can always be printed over unit? Possibly have
- full name override for pop up help text as well.
- Adjust_Threat should only make an adjustment if the unit moves to a new
- cell, is unlimboed, or limboed.
- New to Borland 5.0!
- namespaces
- mutable
- bool
- standard template library
- kevin_aguilar
- TOFIX -- fix for Red Alert
- OLD -- obsolete for Red Alert, but applicable for Tiberiun Sun
- While moving, scan for targets within range (turret vehicles only) so that
- firing may occur while moving.
- Keep track of the amount of damage (rate) received by a building. This
- is used to determine if the building should be sold if it is taking
- too much damage.
- Send attack helicopter to harrass the enemy.
- Don't consider SAM sites to be weapon equipped when determining retaliation
- logic.
- Abort existing production in emergency situations. e.g., when power is low, base
- is under attack, or no refineries left.
- Break down AI into request and priority. Then after building list, try to perform
- all actions that are highest priority without being mutually exclusive.
- Record the current state of the house. Possible states could be "buildup", "under attack",
- "idle". The AI will adjust itself depending on the state of the base.
- When damaged and previous target is outside of range but antagonist is much closer,
- then attack antagonist. Recuit assistance from any nearby friendly units that
- are also far from their designated target or are otherwise unoccupied.
- Hall of fame data to record more information. Histogram of progress? Records
- the number of wins/losses/reloads/saves, etc. Time they play.
- Colors on team selection brackets.
- Build base defense toward last enemy, but as a ring from the center of the base.
- Build infrastructure away from enemy threat.
- If low on money also sell of some base defense if there is just too much of it.
- Setup program crashes in windows 95. Error is "stack overflow on interrupt".
- MCV not deploying if it starts in correct rotated position.
- Score timer needs fixing.
- 33. SCG03EA: Won by capturing his Hand of Nod, and then
- building engineers from it to capture the rest of the base.
- When something like that happens, the AI should recall most or all of its forces for defense.
- Distribute damage applied to refinery to any attached harvester as well.
- If no more tiberium or no more refinery, then rampage harvester.
- Fix tree crumbling.
- Add a hover command to the mission list so that the helicopter can hover (forever).
- Prevent using the placement cursor to find stealth tanks.
- Airstrip should animation flashing lights when an aircraft is approaching only.
- Apply low power damage only when the "need more power" message is played.
- Click and drag on the radar map?
- If engineer has its target snatched out from under him, then assign a hunt
- mission so that it will pick another target (applied to computer non-team only).
- If hit, then respond even if on hunt.
- Optimize the update threat function to occur ever cell rather than every time the object
- is marked up or down.
- If a building is captured, cause a defend base action.
- When full of storage, stop the harvester. Don't enter refinery if there is
- no storage available. If less than 350 credit storage available, pause.
- Darken "repair" and "sell" if there are no buildings available.
- If a computer controlled unit enters a transport square, then load it up.
- Take advantage of archive target for aircraft. Returns to location after
- attacking.
- Aircraft dying on ground should have crew survivor.
- Helicopters puff smoke before crashing. Handles the transport helicopter.
- After evac, send the helicopter back to the game? Keep track of number
- of civilians evacutated? Tie a trigger event to this number?
- Don't reload the SCUD while it is moving. Suspend the reload delay
- by incrementing the countdown timer.
- Need accurate mouse tracking so that it is possible to move infantry into the same square
- as other infantry.
- Tighter individual infantry AI. Self defence priority.
- Bringing a wall to its last damage level should be much easier
- than completely destroying it. This will allow infantry to
- enter through the holes in a wall more easily than the vehicles
- would.
- Need a function that will return the cell number that either the unit is
- currently at (if it isn't moving) or the one that it will be at the
- moment is needs to pull more values off of the path list. This function
- will be used in the findpath draw routine. This is necessary because
- infantry and vehicles use a different method of movement and path list
- processing.
- Add flag so that bullet (or warhead) knows whether to do explosion area
- effect damage or whether to just damage the target. SAM missiles would
- just damage the target (maybe APDS as well).
- Add some function to the facing class that automatically convert the
- return value to 1/32 or 1/8 values.
- Misc. strange Watcom errors/quirks
- > Internal compiler error 57
- > Abnormal program termination: Array bounds exception CS:EIP = 2BCDh:000009A6h
- > Created a 100 meg precompiled header file.
- > read error on work file: error code = 1
- > "const" bitfields show up as 32bit numbers in debugger.
- > couldn't add a specifier (foobar::) to a friend class declaration
- > Inline assembly can generate wrong code for parameter setup.
- > casting doesn't follow precidence rules.
- > CTRL-C to break out of compile sometimes crashes. Here is an error.
- Invalid date ""
- run-time error R6000
- - stack overflow
- > Unable to find carve memory block.
- > Can't overload inline assembly routines?!?! #pragma doesn't specify parameter
- type information so that it can resolve properly?
- > Access Violation abort and register dump when compiling display.cpp
- WPP386 caused an invalid page fault in
- module <unknown> at 0000:4f435c4f.
- Registers:
- EAX=8161e314 CS=014f EIP=4f435c4f EFLGS=00010246
- EBX=0059f798 SS=0157 ESP=005900f0 EBP=00590110
- ECX=00590198 DS=0157 ESI=005901dc FS=0d97
- EDX=bff76648 ES=0157 EDI=005901c0 GS=0000
- Bytes at CS:EIP:
- Pass range to bullet constructor. It will use this value to limit the
- fuel and scatter calculations.
- Library allocation and input system should route through a global
- base class pointer. This allows changing some aspect of these system
- by using simple derived classes. Example: The memory system could keep
- track of what and why allocations take place. The input system could be
- intercepted to playback a recorded demo. Etc.
- Create a standard format for dissemenating technology from a project. This form
- would have a concise technology synopsis at the begining. This would be
- followed by greater detail explanations.
- Create inline versions of Swap_LONG, Reverse_WORD, and Reverse_LONG.
- Straighten out the ScrollGadget / SliderGadgets. It shouldn't "new"
- the arrow gadgets, but rather either have them as integral objects
- or separate them completely and create a special combination class
- in a similar fashion to the list class.
- Create a number<->string handler for the library. String data files (blocks) are registered
- with the handler. All library routines that can take const strings could then also take
- string numbers. They would use the handler to extract the correct string pointer.
- Create a utility that loads the palette source pictures and then generates all the morph
- palette tables. This is a C&C custom utility.
- Need a smarter team movement logic for the computer so that infantry do not clump into
- one cell unless absolutely necessary.
- Create a function that submits a "pending object" to the map I/O handler. This handles
- setting up the Zone cell, pseudocursor sizes, as well as all the pending pointers.
- If fire shard lands in the exact sub-cell position of an infantry unit, then it will automatically
- catch fire.
- If cell targets were simple object types, then they can exists in a sort of virtual cell existence
- when specific targeting of a cell is desired. This will allow all target values to be converted
- into short object pointers. There would be a limit to the number of cells that could be targeted
- simultaneously. Multiple units targeting the same cell would be allowed. Each pseudo-cell would
- keep a record of the number of simultaneous targets upon itself.
- Add a "new" and "delete" function for cells. It would merely return pointer to appropriate spot in
- the cell array, but does allow the constructor/destructor logic to function as well as allow the
- possibility of arbitrary sized maps. These cell objects would not be the same as the virtual cell
- objects used for targeting purposes, although each targeting cell object has a real cell object it
- corresponds to.
- Need a utility that will calculate fading and translucent tables from a specified palette.
- It will create a data file of the created table(s). This utility should be passed a
- source LBM (for palette file) and a destination filename and the operation to perform.
- It could also be passed a text file that elaborated the process to perform.
- Example:
- [All] ; Options that perform to all colors unless overridden.
- Percent=70 ; Percent to fade from original color to destination color.
- [1] ; Process for color table entry #1 in original palette.
- FadeTo=13 ; Fades to color #13.
- Percent=70 ; Fades 70% of the way from color 1 to color 13.
- Uses=240-255 ; Only allowed to pick from these colors as final color.
- Objects should move into and out of the logic processing list according to what state they are in.
- A unit that is just sitting and waiting for its timer to count down shouldn't be processed in the
- regular list like the other units would be. Example: A unit is sitting there with no order so it
- is out of the normal logic loop. If it gets selected as a target then it must flash. The
- "isflashing" flag gets set and the object gets placed into the logic list. When the flashing
- expires, a simple (union?) check of the logic activation bits is performed. If any of the bits are
- still on, then the object remains in the logic list, otherwise it is removed. A simple countdown
- timer processor is needed for those cases where the only reason the unit is out of the logic loop
- is if it is waiting for the next AI command to occur.
- search for ",[^ \t$]" and " (" and "}\n[ \t]else {" and "for(" and "switch(" and "\*." and "\t\*-" and "return("
- ){ and }else{
- Separate arming value for each weapon. This will allow weapons to fire at will according to
- their fire rates. This will also require a What_Weapon_Should_I_Fire_Now() function to
- help resolve the ambiguous situations.
- Create a project format style guide for C&C Tiberian Sun. Put summary into some header file.
- Need very specific question functions for the objects. Wrapper functions (radio messages) coordinate
- these sub functions to perform tasks.
|