Commit Graph

182 Commits

Author SHA1 Message Date
Andreas Schneider 14ab47bdf8 - Changed several OpenGL calls with their integer-equivalents (we don't use floats anyway)
- Added a "real quad" to the screenbuffer to keep track of the original terrain locations
- Added OpenGL based hit test to TScreenBuffer.Find
2009-12-04 15:52:27 +01:00
Andreas Schneider 082770f183 - Fixed mouse-up handling when no SelectedTile is given 2009-12-04 03:17:05 +01:00
Andreas Schneider b6dfd64d41 - (Re-)Added drawing of tiles (using the ghost tiles)
- Fixed ghost tiles to be in edit-mode
2009-12-04 02:33:59 +01:00
Andreas Schneider 20747a4e0c - Fixed TfrmMain.SetCurrentTile to exit only under correct conditions
- Fixed ghost tile creation to handle random height
- Changed UpdateSelection to only process the selection changes if necessary
- Changed TMapCell.GhostZ to be readable (necessary for simplier increase with random altitude)
2009-12-04 02:20:56 +01:00
Andreas Schneider 211866d6c1 - Fixed ghost tiles to use the proper priorities
- Fixed mouse-up handling to correctly reset the selected tile
- Moved ghost tile adding to the appropriate single- and multi-select blocks
- Fixed AddGhostTile to use the correct tile (current <> selected) as base for certain assumptions
2009-12-04 02:00:02 +01:00
Andreas Schneider fda2be2b8c - Added static ghost tiles 2009-12-04 01:27:06 +01:00
Andreas Schneider be9d56f7c9 - Added virtual getters for Z and TileID to TWorldItem
- Added ghost information to TMap
- Added ghost tiles (currently for map tiles only)
2009-12-04 00:58:59 +01:00
Andreas Schneider 2fdbc698ac - Added more appropriate handling of the selection rectangle (no +1 and an own compare function) 2009-12-03 18:56:08 +01:00
Andreas Schneider e337c931ed - Fixed another case of off-screen updating
- Removed old GhostTile handling
2009-12-03 15:41:49 +01:00
Andreas Schneider 0f2130730b - Fixed UpdateSortOrder to handle off-screen updates correctly 2009-12-03 15:38:11 +01:00
Andreas Schneider a74bfce923 - Re-enabled lighting normals 2009-12-03 01:38:42 +01:00
Andreas Schneider fffb420299 - Some code cleanups in UfrmMain and ULandscape
- Fixed GetPlainNormals in ULandscape to actually return a value
2009-12-03 01:35:29 +01:00
Andreas Schneider d5e5510760 - Added TTileDataFlag enum
- Added TTileDataFlags set
- Changed TTiledata.Flags to use the TTileDataFlags set
- Added hue highlighting to TfrmMain
- Added TTextureManager.GetStaticMaterial to handle tiledata and hues
2009-12-03 00:04:19 +01:00
Andreas Schneider b90ea02421 - Fixed TWorldItem.Delete freeing itself
- Fixed order in which statics get deleted (first call item.Delete THEN delete it from the objectlist which will free the item)
2009-12-02 21:50:16 +01:00
Andreas Schneider 01e7b98a12 - Added generic lists for world items, static items and map items
- Added appropriate compare functions
- Some local cleanups
2009-12-02 19:14:00 +01:00
Andreas Schneider 8df2313b4d - Fixed TfrmLogin to create the profile path if it doesn't exist
- Removed old code from TfrmMain.Render
- Bumped version to 0.4.5
- Moved TVirtualTile to UWorldItem
- Added TVirtualTile handling to CompareWorldItems
- Added priorities to the virtual tiles
2009-12-02 18:40:03 +01:00
Andreas Schneider c030b9c586 - Updated to new VirtualTreeView (UTF8String --> String) 2009-11-24 13:53:43 +01:00
Andreas Schneider f58bef6d63 - Fixed drawing of TileName in the tile list (assuming ISO8859-1 encoding) - fixes #37 2009-10-24 14:29:32 +02:00
Andreas Schneider c3bdc98219 - Moved WriteMap handling from TdmNetwork to TLandscape
- Added repainting when accesslevel display changes (toolstate, update write map)
2009-10-02 23:52:02 +02:00
Andreas Schneider f888443ed0 - Changed TLandscape.FOpenRequests to use TBits instead of a boolean array 2009-10-02 18:18:59 +02:00
Andreas Schneider 69a5b97b64 - Fixed some events not correctly triggering a repaint 2009-10-02 18:12:36 +02:00
Andreas Schneider 7d038013b2 - Fixed TLandscape.FillDrawList to unnecessarily check upper/lower bounds 2009-10-02 18:10:21 +02:00
Andreas Schneider 6c9a474003 - Changed handling of CurrentTile and SelectedTile to avoid unnecessary invalidations 2009-09-30 19:29:32 +02:00
Andreas Schneider 94d77d4a00 - Changed TVirtualTile to inherit directly from TWorldItem
- Added FRepaintNeeded to minimize unnecessary repaints
2009-09-29 16:06:52 +02:00
Andreas Schneider 0cee996fbc - Reimplemented the Virtual Layer 2009-09-29 02:25:19 +02:00
Andreas Schneider 99c21fa951 - Added Logging unit and MultiLog dependency
- Removed StaticsFilter parameter from FillDrawList
2009-09-28 18:16:29 +02:00
Andreas Schneider b9ef61c0db - Added UfrmToolWindow
- Changed the tool windows to inherit from TfrmToolWindow
- Added a "close timer" to TfrmToolWindow to handle different focus behaviours of window managers
- Moved position changes for the tool windows to the appropriate TfrmToolWindow.FormShow event
2009-09-02 03:21:39 +02:00
Andreas Schneider d769c7ddc3 - Added version info to the project options
- Added new icon
2009-08-31 22:24:54 +02:00
Andreas Schneider 237c9765cd - Added filter management to TfrmMain
- Changed screen buffer state handling to enums
2009-08-06 17:34:55 +02:00
Andreas Schneider 2cfde3eea5 - Changed TfrmFilter to enable tile and hue filter on tile/hue list changes
- Changed TfrmFilter placement to be off by -4 in x and y direction
- Disabled "scroll to center" in TfrmMain's TileList
- Disabled unncessary drag operations in TfrmMain's TileList
2009-08-06 15:42:19 +02:00
Andreas Schneider 2b040fc5e3 - Disabled use of normals (weren't really in use anyway)
- Added updating of the last shortcut in TScreenBuffer
2009-08-06 15:04:09 +02:00
Andreas Schneider 28969d94f7 - Removed merge sort implementation
- Use a temporary array and QuickSort (TList.Sort) to sort the initial drawlist
- Clear the drawlist in the TLandscape.FillDrawList method
2009-08-04 18:02:39 +02:00
Andreas Schneider 1f1f5ac7b4 - Added TLandscape.OnMapChanged to handle changes to map tiles
- Reenabled terrain, statics, nodraw and flat toggles
- Fixed editing target list generation (in OnMouseUp) to only consider "normal" tiles, use their correct new order and the CanBeEdited attribute
- Removed obsolete TfrmMain.CanBeModified
2009-08-03 19:32:03 +02:00
Andreas Schneider 2ea8601402 - Added handling for hue changes (OnStaticHued) 2009-08-03 18:55:54 +02:00
Andreas Schneider a71c1bd570 - Added fpdoc paths
- Started some documenting
- Added TScreenBuffer.UpdateSortOrder to handle elevations
2009-08-03 18:40:31 +02:00
Andreas Schneider 1bc9ad3fe1 - Added handling of new blocks (OnNewBlock event) 2009-08-03 00:29:55 +02:00
Andreas Schneider 2e16269397 - Extracted TfrmMain.PrepareScreenBlock from RebuildScreenBuffer
- Added events for OnStatic-Inserted, -Deleted and -Elevated
2009-08-02 20:45:23 +02:00
Andreas Schneider fbbe988dd6 - Replaced usages of UListSort with TList.Sort
- Removed now obsolete UListSort.pas
- Removed GameResourceManager dependency from TStatics
- Moved TSeperatedStaticBlock to the according ULandscape units
- Cleanup some unnecessary <> nil checks
2009-08-02 19:08:56 +02:00
Andreas Schneider dc932985e2 - Made cedserver compile with FPC 2.2.3 2009-08-02 18:43:32 +02:00
Andreas Schneider b70f03ba2a - Added iterator to TCacheManager
- Added access (CanBeWritten) tracking to TStaticItem
- Moved TLandscape.UpdateStaticsPriorities to TStaticItem.UpdatePriorities
- Moved ULandscape.CompareWorldItems to UWorldItem
- Renamed TSeperatedStaticBlock.RefreshList to RebuildList
- Changed TStaticBlock.Sort to use CompareWorldItems and TList.Sort
- Some code style changes
2009-08-02 13:45:26 +02:00
Andreas Schneider f3888db49c - Removed several unnecessary panels from frmMain (using Anchors instead) 2009-07-31 17:03:26 +02:00
Andreas Schneider dc1f425353 - Added tracking of "Highlighted" state in the screen buffer 2009-07-30 20:31:29 +02:00
Andreas Schneider 01d5fb98d1 - Optimized blockInfo.ScreenRect calculation for static tiles
- Fixed TScreenBuffer.Find to correctly handle the new buffer usage (search at the end, not the beginning)
2009-07-30 17:04:49 +02:00
Andreas Schneider 1196ad6425 - Fix Z-order calculation for terrain tiles (thanks Turley) 2009-06-12 12:31:14 +02:00
Andreas Schneider 31d2623df9 - Changed terrain rendering from GL_TRIANGLES to GL_QUADS to fix coastlines and other overlapping (thanks Turley) 2009-06-11 14:41:30 +02:00
Andreas Schneider 7fdfd1ee23 - Merged TTileList into TScreenBuffer
- Added shortcuts to TScreenBuffer to speed up the InsertionSort
- Renamed TScreenBuffer.Store to TScreenBuffer.Insert
- Added TScreenBuffer.Add to append to the list
- Added TScreenBuffer.Sort to sort the list using MergeSort
- Changed TLandscape.FillDrawList to just append to the list and sort afterwards
- Added screen buffer invalidation on TfrmMain.OnLandscapeChanged
2009-05-20 18:16:18 +02:00
Andreas Schneider 0d6c151c5f - Removed TVector2D
- Added screen buffer (in)validation
- Moved distance calculations to RebuildScreenBuffer
- Added tile drawing to the Render method
- Added DrawQuad precalculation to the post processing of the screen buffer
- Renamed the members of TScreenState
- Changed the DrawQuad to consist of TGLfloats for direct pointer passing
- Fixed the while loop condition in TScreenBuffer.Store
2009-05-18 00:33:59 +02:00
Andreas Schneider 561104a924 - Added screen buffer pre processing (prepare materials and normals)
- Added 2D Vector to store the points for drawing terrain
- Added additional GetNormals function to TLandscape to fill an existing array
2009-05-17 22:06:42 +02:00
Andreas Schneider fee66eada8 - Refined state handling for TBlockInfo
- Added caching of normals into TBlockInfo
- Added differentiation for low and high res materials to TBlockInfo
- Removed draw list clearing from FillDrawList
- Changed TScreenBuffer.Store to return a reference to the stored TBlockInfo
- Added missing ; to GetSerial
- More cleanups in ULandscape.pas
- Moved several local variables of TfrmMain.Render into TfrmMain members
- Moved several size related variable initializations from Render into OnResize
- Extracted GetDrawOffset
- Added seperate RebuildScreenBuffer
2009-05-17 15:32:51 +02:00
Andreas Schneider 61db743ee5 - Cleanup in ULandscape.pas
- Removed unncessary virtual and ghost tile handling from FillDrawList
- Added serial generation and tracking to TScreenBuffer
- Added editing state tracking to TScreenBuffer
- Changed TScreenBuffer.Store to perform an InsertSort
- Changed TScreenBuffer.Store to handle only the most necessary parameters
2009-05-17 14:12:52 +02:00