Commit graph

86 commits

Author SHA1 Message Date
gmriggs
24451d36c1
match CBldPortal.PortalSide up to client (#4315) 2025-05-10 22:12:51 -04:00
trevis
8c6cf5ff50
- Added MaximumSameCharactersInARow to dat NameFilterTable. (#4307)
- Updated NameFiltertable.ExtraAllowedCharacters to be a string
2025-05-06 11:32:47 -04:00
OptimShi
9864887263
DatReader - ActionMap (#4217)
* Added ActionMap Dat reading 0x26000000

* Removed debug code from startup
2024-08-20 19:26:08 -04:00
Ty Conner
ebc429f7a6
Clear compiler warnings (#4216) 2024-08-14 01:47:33 -04:00
OptimShi
ed7af65f9a
Added Dat structures and tests for UILayout and DbProperties (#4208) 2024-08-13 14:45:30 -04:00
Ty Conner
5f4313cee5
Update BasePropertyDesc.cs (#3975)
* Update BasePropertyDesc.cs

* Update BasePropertyDesc.cs
2023-04-26 12:58:18 -04:00
OptimShi
da76e6e995
Added support for parsing MasterProperty, 0x39000001 in the client_portal.dat (#3970)
* Added support for parsing MasterProperty, 0x39000001 in the client_portal.dat.

* Removed skipping of MasterProperty in DatLoader.Test
2023-04-10 05:45:09 -04:00
gmriggs
416447c21a
small change for acviewer to build non-dat-based CloSubPalettes (#3799) 2022-02-02 04:47:10 -05:00
gmriggs
9b33097c02
adding the very basics for olthoi play (#3559) 2021-10-12 00:34:24 -04:00
gmriggs
cead5d67ac
update AnimationPartChange DatLoader accessibility for ACViewer clothing (#2995) 2020-05-23 22:51:22 -04:00
gmriggs
991ce1482e
adding server option for players to 'long hold' doors open for other players, as per retail (#2933)
* adding server option for players to 'long hold' doors open for other players, as per retail

* matching code w/ acclient

* normalizing config option names / default retail values

* updating desc
2020-04-16 00:23:37 -04:00
Ty Conner
05178447a3
Support SpellSets for Items that don't level (#2315)
* Support SpellSets for Items that don't level

* Insert previous SpellSets for tiers with gaps

* debug cleanup

* Fix log spam on some NpcLooksLikeObjects

* Update SpellSet.cs

* Update WorldObject_Set.cs

* Some changes

* Update WorldObject_Set.cs

* Update WorldObject_Set.cs
2019-09-24 11:53:56 -05:00
gmriggs
b9ed09c1b2
improved player melee attack animations (#2176)
* improved player melee attack animations

* re-adding override

* fixing some stance swapping bugs
2019-08-02 10:25:27 -04:00
Mag-nus
33985196fb
Make Dat SubPalette and TextureMapChanges properties public (#2094)
This allows other tools to instantiate these objects and set new values.

This is used by OptimShis Palette decoder and my retail character importer.

I was always on the fence about these dat properties being public. The risk is that a developer could modify a property in ACE. That property would then persist to the cached at object, and would be re-used until ACE was restarted.

This happens because dat objects are cached, and that same instance is returned on subsequent requests.

However, if we are ever to have 3rd party Dat editor tools, these properties will need to be public anyway.
2019-07-11 09:15:44 -05:00
gmriggs
114888ed9e
fixing highframe bug (#2023) 2019-06-21 04:14:46 -04:00
gmriggs
dbaaec0ce3
Fixing monster retired skill #s (#1817)
* Fixing monster retired skill #s

* moving AddRetiredSkills
2019-04-28 01:30:45 -04:00
gmriggs
1c3c49092c restore files w/ corrected line endings (#1743) 2019-04-15 18:41:48 -05:00
gmriggs
56f20d7a25 nuking 2 files for possible EOL fix (#1742) 2019-04-15 18:39:39 -05:00
OptimShi
26b5965544 Gear Knight display fixes (#1610)
* Gear Knight Fix

* Work around old Gear Knights
2019-03-31 09:11:03 -04:00
gmriggs
f46401248b
Adding items that can be leveled up (#1544)
* Adding items that can be leveled up

* initial implementation for item leveling, and item equipment set spells

* negative rating update
2019-03-18 22:50:00 -04:00
gmriggs
35a865f5da
Adding enchantments for items wielded by monsters / NPCs (#1445)
* Adding enchantments for items wielded by monsters / NPCs

* Adding support for more motion states (still needs data fixes)

* Adding DR/DRR from base properties for ToD monsters

* Fixing monster projectiles
2019-02-16 17:18:19 -05:00
Mag-nus
2f9d3e1678
Split fixes, repeat logout protection (#1138)
* Few more vector3 value type fixes

* Basic fix for HandleActionStackableSplitToContainer

Still need to fix the network messages

* Releat logout protection
2018-12-13 22:04:02 -06:00
Mag-nus
1423784d85
Fix char creation heritage group skill cost overrides (#1123)
* Remove WorldObject.IsDestroyed (not used, legacy)

* Convert IsBusy/IsMovingTo to auto properties

* Use HeritageGroup to determine skill cost overrides
2018-12-08 20:33:04 -06:00
Mag-nus
3e836a6cbb
Profiling based improvements (#1115)
* Use PortalDat skill table instead of reflection properties

* Update showstats comments

* remove attributes from Skill enum (Values now come from dat)

* Remove attributes from PropertyAttribute2nd (Values come from dat now)

* Landblock, worldObjects to private and adjacents->Adjacents

* Landblock remove PhysicsObj != null check. No need. 6% CPU savings

* showstats shows [Unusable] for untrained skills which are unusable

* Improve performance of GetWorldObjectsForPhysicsHandling

* Improve Skill IsUsable

* Updating showstats

* Fixing null pointer exception in IsUsable
2018-12-03 17:53:32 -06:00
OptimShi
e6937b3e68 Added three new dat FileTypes (#1106) 2018-11-28 23:52:14 -05:00
gmriggs
b215a34ce7
Improving DatLoader for third-party apps (#1092)
* Improving DatLoader for third-party apps

* Adding some missing filetypes (thanks OptimShi!)

* Adding more enums, using SmartArray

* Re-adding loadCell

* Reverting to UInt32
2018-11-22 01:33:17 -05:00
Mag-nus
390961ca70
More profiling based improvements (#1091)
* Landblock LoadMeshes summary improved

* Landblock CellLandblock/LandblockInfo get only (set in ctor)

* Fix LScape get_landblock thread safety

* Fix EnchantmentManager Surpass (retval)

* Only create the WorldObject.ObjectGuid once

We don't need to instantinate a new ObjetGuid per get of the property.

* castclass (cast) is faster than isinst (as), also fix double enumeration

* Streamline Attributes and Vitals

They are fixed and set in SetEphemeralValues, called by the ctor.

They do not need the additional layer that Skills do.

* BiotaPropertiesEnchatmentRegistry direct access fixes (Use extensions instead)

* Another BiotaPropertiesEnchantmentRegistry -> Extension fix

* Initial EnchantmentManagerWithCaching

* Added the remaining functions to the cache

* DelayManager using the wrong Min. woops...

Min() was the linq version that enumerates the whole collection. Min is the built in fast version for the SortedSet

* Fix PortalDatDatabase properties

They should only be set once, not executing the getter on every request.

Furthermore, SpellBase was referencing the static DatManager via the Unpack command to construct SpellWords. A dat file type should not be referencing the static datmanager. Instead, we use the GetSPellWords that takes the reference to DatManager to generate the same result.

* Cleanup loadalllandblocks status output

* Improve LoadAllLandblocks comments
2018-11-14 20:52:13 -06:00
gmriggs
1e6af06ef6 Adding particle emitters (#1082) 2018-11-01 02:55:11 -04:00
gmriggs
4619970f80
Refactoring LandblockManager, improving VitalTick performance (#1079)
* Physics Cache cleanup (Mostly cosmetic)

* Vertex/Polygon/BSP CacneEnabled flags added, default to false

Testing results:

Debug mode, loading 31,329 landblocks (x = 0x20-0xD0, y = 0x20-0xD0)

With Vertex, Polygon & BSP Cache:
2018-10-25 10:05:12,121 DEBUG: Loaded Landblocks in 120.39 seconds
2018-10-25 10:05:12,218 DEBUG: 13759 MB used

2018-10-25 10:08:00,330 DEBUG: Loaded Landblocks in 101.11 seconds
2018-10-25 10:08:00,427 DEBUG: 13667 MB used

2018-10-25 10:13:08,448 DEBUG: Loaded Landblocks in 104.36 seconds
2018-10-25 10:13:08,507 DEBUG: 13666 MB used

With Vertex, Polygon & BSP Cache Disabled:
2018-10-25 10:17:55,339 DEBUG: Loaded Landblocks in 100.63 seconds
2018-10-25 10:17:55,404 DEBUG: 14175 MB used

2018-10-25 10:21:11,596 DEBUG: Loaded Landblocks in 89.23 seconds
2018-10-25 10:21:11,666 DEBUG: 14220 MB used

2018-10-25 10:27:22,145 DEBUG: Loaded Landblocks in 93.74 seconds
2018-10-25 10:27:22,200 DEBUG: 14206 MB used

* PhysicsCaches, remove redundant null check

* Improved GfxObjCache model

* DBObj Boxing/Unboxing improvements

* Add thread safety to GfxObjCache

* Landblock phsyics loading async

* Adding setup "caching"

* Redirecting properties to DatLoader

* Refactoring LandblockManager, resolving Physics Landblock loading bug

* Tabs vs. spaces

* Improving VitalTick performance

* Adding refactored AttributeFormula to CreatureSkill

* Disabling BSP cache
2018-10-28 09:56:48 -04:00
gmriggs
abf3923355 Adding support for level 8 spells (#1048)
* Adding support for level 8 spells

* Updating /dispel command
2018-10-09 11:47:26 -04:00
gmriggs
3c5cd0bbe8 Adding monster combat maneuvers / special attacks (#970)
* Adding monster combat maneuvers / special attacks

* Restricting combat maneuvers to current stance

* Fixing null pointer exception on creature appraisal
2018-08-26 07:43:58 -07:00
gmriggs
1db49dbd09
Refactor generators a bit, fixing some bugs with spawning/respawning items (#951) 2018-08-13 18:07:21 -04:00
gmriggs
772344276d
Adding physics entity cache system (#936)
* Adding physics entity cache system

* Fixing CullMode

* Cleanup

* Removing unused fields in PhysicsPart for server
2018-08-10 19:56:25 -04:00
gmriggs
3de7006ade
Adding full monster movement physics (#894) 2018-07-27 14:02:47 -04:00
gmriggs
a60d79ddfa
Adding scenery details (#882)
* Adding scenery details

* Fixing PhysicsBSP case
2018-07-19 19:42:07 -04:00
OptimShi
b694a9991b AdjusSpell Words (#876)
* Tweaked Spell Words

* ChangeLog
2018-07-17 19:25:38 -05:00
OptimShi
dcf9e82f10 Dat fixes (#848)
* Fixed some dat reading related errors.

* Adjusted AnimationPartChange and added second implementation of Unpack

* Small fix to highres/language dat reading to handle errors cleaner

* Updated highres/language dat loading logic, removed exceptions entirely
2018-07-05 15:09:20 -05:00
OptimShi
cad0e661d0 Dat updates (#847)
* Fix Replace Animation Hook

* SoundTable

* Numerous Dat Updates

* Added highres and language export commands
2018-07-05 07:50:42 -05:00
OptimShi
795633a2a3 Added Spell Sets to DatLoader.SpellTable (#841) 2018-07-03 06:59:56 -07:00
fartwhif
65cbccdaa6 fixed bug causing DefaultPaletteId to always be set (#805)
no longer uses the stream length for parsing
more descriptive property name
moved DirectX texture formats enum to ACE.DatLoader.Entity namespace
2018-05-25 22:25:54 -04:00
fartwhif
82e8bdb2a4 added SurfaceTexture parser (#802)
* added SurfaceTexture parser
added Texture file getter

* to-do: identify the 4 extra bytes (trailing crc?)

* Update Texture.cs

corrected bug causing Format to always be D3DFMT_UNKNOWN

* accounted for the trailing DWORD
cleaned up the code a bit
2018-05-23 22:50:08 -04:00
gmriggs
7b73fc4740 Objects navigating dungeons and sliding along walls/obstacles (#711)
* Objects navigating dungeons and sliding along walls/obstacles

* Fixing objects loading into dungeon
2018-03-31 03:15:05 -04:00
gmriggs
62333cc6e5 Environment collision detection with PhysicsBSP (#705)
* Environment collision detection with PhysicsBSP

* Re-enabling tracking code

* Fixing LandOnSphere test
2018-03-27 13:54:23 -04:00
gmriggs
e2bb84de1c Swanky portals (#701) 2018-03-25 00:33:24 -04:00
Ty Conner
3adc31c991
Init All The Physics! (#698) 2018-03-24 21:45:08 -04:00
Mag-nus
46eecb771f ACE.DatLoader TabooTable added 2018-03-19 08:10:21 -05:00
gmriggs
3a6982c560 Physics testing, player moving across landscape at correct speeds (#687) 2018-03-15 03:34:01 -04:00
gmriggs
b781632800 Physics testing adjustments (#680) 2018-03-11 07:36:42 -05:00
gmriggs
33b66484c5 Have Landblocks load all terrain, building, and generic obstacle data during start up and store it for use in the physics engine. (#641) 2018-02-16 08:56:51 -06:00
Mag-nus
99fb8bcc55
All this does is cleanup a bunch of style issues that Resharper complains about (#629)
* Removed unused using statements

* Removed redudnant ToString()'s

* Removed some redundant type casts

* Removed redundant bool comparisons

* remove redundant initializers

* xml summary in invalid place switched to comments

* Use string interpolation

* use format separators

* Removed redundant parenths

* remove redundant else

* direct cast when safe

* redundant string interpolation

* xml summary fixes

* removed empty ctors

* fix modifier order

* Convert to auto property

* Convert some getters to method bodies

* use format separators

* changelog

* Auto-properties that can made to get-only

* fixed some references in XML comments

* remove redundant base()

* Revert "Auto-properties that can made to get-only"

This reverts commit 32a1225ce8.

* fix starter gear json

* Use collections count property

* simplify conditional ternary expression

* remove redundant return statements

* Constructors for abstract classes changed to protected

* Moved declarations to inner scopes

* Join declaration and assignments

* inline out variables

* Use enum extension methods instead of static methods

* inline out more variables

* more unused usings

* Remove specifying enums as ints
2018-02-09 06:46:49 -06:00