carpg
carpg copied to clipboard
Refactoring
- fix function names, Generate vs Spawn
- common code for players and ai
- convexSweepTest for bullets
- unify error message for loading
- rename City -> Settlement
- probably i wrongly use fmodex, all music handles are always open
- PUT_ITEM, GET_ITEM allow uint in NetChange
- unified take in/out weapon in unit (not in Game)
- better info about loading errors
- move Pak handling away from ResourceManager.cpp
- join quest handling in EnterLevel, EnterLocation
- refactor IsEnemy, IsAlly, use different system
- reuse Bullet, add pool
- refactor level context and all this complex logic (LeaveLocation, LeaveLevel, ClearGame)
- FindPlaceForLocation - search for it, not randomly try to place it around
- search for empty position for spawning units/rising, not randomly trying; interpolate position from current to new when rising
- join StartNewGame and StartQuickGame
- Unit destructor
- RotatedRectanglesCollision jest jakieś zbugowanie w Collide(Box2d, bez rot), trzeba było dać -rot, trzeba sprawdzić czy działa w innych funkcjach dobrze Collide(Box2d, rot), GenerateDungeonObjects
- btCollisionShape sharing/reuse
- SpawnUnitInsideRoom, SpawnUnitNearLocation - first gather objects, find place to put unit (not randomly select position)
- join selected_target, selected_unit, before_player_ptr
- common class for player and chest inventory [Inventory]
- every unit action should have code to cancel/stop it (cancel pickup)
- better game cleanup
- rename Bullet -> projectile (or other)
- rework loading item script to reuse if block
- check unit mesh n_subs with tex override count
- large address aware http://stackoverflow.com/questions/3109543/what-to-do-to-make-application-large-address-aware (GetCursorPos -> GetCursorInfo) LARGE_ADDRESS_AWARE and D3DXFX_LARGEADDRESSAWARE is not set
- draw bullet/projectile hitbox
- draw SceneNode bounding sphere
- better drawing of physics objects (btTransform can store scalling)
- don't use D3DX
- dont use D3DPOOL_MANAGED
- debug key - show item under cursor id, quest id; allow pick encounter
- using keyword group name in errors
- join PlayerInfo/PlayerController
- render to texture automatic objects/portal system (tv/portal/vision for example), max loop count, with additional texture
- rework allow_input system
- physics world per level context
- use uint as hair color instead of Vec4
- draw skybox after objects
- check compiler settings: Buffer security check, Floating point model
- refactor - unify all errors with load_errors
- keep pointers to animations
- reuse terrain_shape
- faster cleanup of btCollisionWorld
- memory allocation stats, FMOD::Memory_GetStats
- what algorithm use in StretchRect?
- bow_instanced from ObjectPool
- refactor inventory po_akcja
- ekwipunek, możliwość ustawienia po_akcji gdy chowa broń, możliwość zmiany po_akcji
- AIController a potion, też potrzebuje lock; trzeba zrobić klasę ItemContainer która przechowuje lock i wskaźnik na wagę; wiele akcji zmienia lock a nie są sprawdzane (np wyrzucanie przedmiotów ale to chyba nie da się robić gdy jest lock, można dodać asserta)
- przechowywanie przedmiotu do użycia w SLOT_TO_USE rozwiązało by wiele problemów z Inventory::lock
- refactor fallback
- check units/objects required by building spawn
- map of spells/units with hashing
- logging group (Engine, ResourceManager)
- better compression https://code.google.com/p/lz4/
- Scene.Draw move setting light params from DrawSceneNodes to Scene.Draw, with drawing objects turned off, this params won't be set
- ISaveable { void Save(GameWriter& f); bool Load(GameReader& f); } IWriteable { void Write(StreamWriter& s); bool Read(StreamReader& s); }
- split AddGold and AddItem
- GAME_KEY (unlock_cursor, open_menu)
- paker, install move function
- use cppformat library https://github.com/cppformat/cppformat
- inactive_update -> pause on lost focus
- saving multiple bools as flags (Unit, PlayerController)
- subtype in BaseItem so there is no need to cast and check in SortTraderItems
- units/objects pool
- saving units/objects as hash
- optimize rotated rectangles collision when rot = 0,PI/2,PI,PI*3/2 to use rectangles collision
- optimize drawing of particles/effects, check if they are visible
- precalculate blood verticles
- verify missing building names + add load errors
- debug key - show quest to chose
- load Str at start or when required (less variables vs error logging at startup)
- BaseBullet for Bullet, save by base, no mesh etc
- Resources - hashing
- custom formatter %.2g - 1000.123 -> 1000.12 (in printf it write 1.E cośtam)
- GenerateCaveObjects use duplicated code for objects spawning, GenerateMine too
- spawn door physics duplicates
- draw_phy is too slow, add range var, optimize
- Add vs Spawn vs Generate vs Create - fix convention
- move away action area calculations from Scene.cpp
- ref many frozen checking when only 1 at start of UpdatePlayer will be enough
- remove tablechairs object, now it's not required
- rename tartak obj -> sawmill
- join TextLine & FontLine
- add vector of pointers that disallow null values, iterating over returns by ref
- use uint2 for resolution
- logger and multiple threads
- quadtree core <-> game part
- use pool for Objects, Units
- rename ItemSlot to something better, is it equipped slots or not ?
- use ContentLoader.LoadError for other loaders
- without human flag and mesh crash when spawned, log error
- remove item QUEST_ITEM_PLACEHOLDER, load items before units
- clear_color2
- refactor code before START_TRADE
- InventoryModeToActionRequired
- don't notify TeamPanel in Team AddTeamMember
- scrap DOWN
- remove ControlDrawData from Draw
- ResourceManager - remove Timer
- remove TmpLocation
- LeaveLocation -> part of World
- journal should detect changes not quests update journal
- devmode to global game stats ?
- remove Game.h include when possible
- InsideLocation.RemoveQuestItemFromChest doesn't remove item and return true
- config sections