carpg icon indicating copy to clipboard operation
carpg copied to clipboard

Refactoring

Open Tomash667 opened this issue 7 years ago • 0 comments

  • 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

Tomash667 avatar Aug 08 '17 09:08 Tomash667