Commit graph

15 commits

Author SHA1 Message Date
Mag-nus
c2bb096631 ACE.DatLoader DatDatabase not loding LandBlockInfo is a warning, not an info event. 2018-03-06 06:51:32 -06:00
Mag-nus
c29389843d
few small things (#627)
* ACE.DatLoader renames PositionNew to Position

* Remove comment

* ACE.DatLoader DatDatabase I prefer this type instead.
2018-02-08 08:00:13 -06:00
Mag-nus
fa43f0db84
ACE.DatLoader improvements (#626)
* ACE.DatLoader DatDirectory reading cleaned up

* ACE.DatLoader: Removed the pointless cached list in DatDirectory

* MySql.Data upgraded from 6.10.4 to 6.10.6

This also fixes 3 build warnings regarding a security dll.

* ACE.DatLoader: All data loaded data objects now reside in ACE.DatLoader, not ACE.Entity.

* ACE.DatLoader performance improvements

* ACE.DatLoader improvements

* conflicts

* conflicts

* conflicts

* conflicts
2018-02-07 22:14:50 -06:00
Mag-nus
2326741c6a
ACE.DatLoader work (#625)
* ACE.DatLoader DatDirectory reading cleaned up

* ACE.DatLoader: Removed the pointless cached list in DatDirectory

* MySql.Data upgraded from 6.10.4 to 6.10.6

This also fixes 3 build warnings regarding a security dll.

* ACE.DatLoader: All data loaded data objects now reside in ACE.DatLoader, not ACE.Entity.

* ACE.DatLoader performance improvements
2018-02-07 09:02:24 -06:00
Mag-nus
f5c7b44d81
ACE.DatLoader DatDirectory reading cleaned up (#624) 2018-02-06 10:18:38 -06:00
Mag-nus
4e79b48535
ACE.DatLoader work (#623)
* ACE.DatLoader LandblockInfo removed testing code

* ACE.DatLoader rename PackableExtensions to UnpackableExtensions

* ACE.DatLoader.Tests: Better testing to make sure full objects are being parsed

* ACE.DatLoader bug fixes

* ACE.DatLoader: Add missing file for build

* ACE.DatLoader Switch to native Vector3 object

* ACE.DatLoader: This changes the spell variables back to their enum types from ACE.Entity

* ACE.DatLoader improvements
2018-02-05 21:26:06 -06:00
Mag-nus
a51a566199
ACE.DatLoader IUnpackable work completed (#621)
* ACE.DatLoader: SpellTable converted to IUnpackable

* ACE.DatLoader CellLandblock converted

* ACE.DatLoader IUnpackable work completed
2018-02-05 11:17:57 -06:00
Mag-nus
6fe177a600
ACE.DatLoader refactoring (#594)
* Change >> 1) & 1 to & 2

Cosmetic change pointed out by Rawaho.

* Better fix of the Portal Flags in the dat code

* ACE.DatLoader refactoring

This new code format uses extention methods to re-use code. It allows decouples object unpacking from DatReader and reduces the dependancy to a simple BinaryReader.

* Forgot to remove the temp StarterAreas code from the transition

* Some files were ignored, not sure why. This should fix
2018-01-23 04:02:39 -06:00
Mag-nus
51e72b4893 Major migration from .net framework 4.6.1 to .net standard/core 2.0 (#573)
* Remove files not referenced by their project (rogue files)

These existed in the repo but weren't included in the ACE.Entity project:
ACE.Entity\ILandBlock.cs
ACE.Entity\WeenieAnimationOverride.cs
ACE.Entity\WeeniePalletOverride.cs
ACE.Entity\WeenieTextureMapOverride.cs

When converting to .net standard, these files will be included in the projects again due to the way .net core/standard project files behave. They include all files in the local paths. Unlike .net framework csproj files, there is no list of files the project maintains.

* Remove Settings.StyleCop from child folders

I believe only the Settings.StyleCop in the root folder is needed, and will take effect for all child projects in the solution.

* ACE.Common and ACE.Entity converted to .net standard 2.0

* ACE.DatLoader switched to .net standard 2.0

This includes the removal of:
ACE.DatLoader\default.ruleset which I believe to be a rogue file.

* ACE.CmdLineLauncher now .net core 2.0

To launch it from a command line use:
dotnet ACE.CmdLineLauncher.dll

This commit also removes AnyCPU from ACE.Common, ACE.DatLoader and ACE.Entity

* ACE.DatLoader.Tests converted to .net standard 2.0

The project icon for ACE.DatLoader.Tests is no longer a C# icon with a half full flask. Not sure if there is any significance with that.

* ACE.Tests converted to .net standard 2.0

Just like the other test project I converted, the C# Flask icon for the project is gone and now it's just a C# icon.

* ACE.Database.Tests converted to .net standard 2

Same project icon issue as noted in the previous test conversions.

* ACE.Database converted to .net standard 2.0

ACE.Database\Redeploy.cs -> CheckLocalDataPath()
File permission checking has been commented out as it's not supported in .net standard/core.

ACE: MySql.Data package updated to 6.10.4

* ACE: Remove GameMessageMotion.cs (rogue file)

* ACE: Remove ACE.Diagnostics reference

ACE.Diagnostics is a winforms app and not available to .net core 2.0

We need a better way to expose diagnostic information anyway. ACE should not be referencing ACE.Diagnostics

* ACE.Tests changed to a .net core 2.0 project

When ACE is changed to .net core 2.0, it's test must also be .net core 2.0.

* ACE.Database: Remove MySqlResult

MySqlResult inherited from DataTable and added a property and a couple functions, but they were never used, thus, MySqlResult isn't needed.

* Update remaining MySql.Data references to 6.10.1

* Force appveyor to use VS 2017

* Remove unused System.Net.Http reference from projects.

ACE.Api.Common
ACE.Api.Host
ACE.Api
ACE.AuthApi.Host
ACE.AuthApi
Ace

* Fix appveyor test paths.

* ACE: DataTableExtensions added with Load fix for .net core 2.0

* Changelog

* AppVeyor test fix maybe

* Change ACE.Database.Tests and ACE.DatLoader.Tests to .net core 2.0 + test NuGet dependancies

* ACE.Database: DataTableExtensions improved

Rawaho method is better than Mag-nus method.

* AppVeyor fix that's just cosmetic. Tests still don't actually exec.

* AppVeyor test

* Appveyor test

* AppVeyor test

* Switch AppVeyor from vstest.console to dotnet test

* AppVeyor another test

* AppVeyor test

* AppVeyor final fix maybe?

* AppVeyor: Went wrong way with directories...

* AppVeyor almost there...

* AppVeyor fatt fingers maybe?

* ACE.CmdLineLauncher -> ACE.ACClientLauncher
2017-12-04 19:10:33 -05:00
Mogwai-TheFurry
c3184a08fa Object overhaul (#384)
* Object overhaul - clean up enums (#337)

* Give property enums a static value to aviod positional fubar later on.   Cleaned up using.

* Cleaning up enums

* Fixed Line ending update change log.

* Review & Comment only || Object overhaul - POC  (#339)

* Give property enums a static value to aviod positional fubar later on.   Cleaned up using.

* Cleaning up enums

* Fixed Line ending update change log.

* Added new positionType

* Started work on implementing object overhaul - want to make sure I am heading in the right direction.

* Minor clean up, responded to feedback and fixed a few bugs.   Thanks for the second and third set of eyes.

* Object Overhaul - ready for review and merge.    Still Work in Progress but a good spot. (#341)

* Give property enums a static value to aviod positional fubar later on.   Cleaned up using.

* Cleaning up enums

* Fixed Line ending update change log.

* Added new positionType

* Started work on implementing object overhaul - want to make sure I am heading in the right direction.

* Minor clean up, responded to feedback and fixed a few bugs.   Thanks for the second and third set of eyes.

* Continued work.   Please review as these are a LOT of manual changes.   Compiles and you can log in.

* Continued work.   I have all of the items pulling from properties now.   Still work to make baseAceObject and AceObject on thing / finish work around workmanship and actually kick the tires and start pulling data.   Sorry this is taking so long.

* Had time for a few more and cleaned up whitespace.

* Good point to check in.   All of the property tables are hooked up and loading data.   I created the workmanship hackery we discussed.   As always comments and suggestions much appreciated.

* One quick shot to fix appveyor before bed.

* * Continued work on Overhaul
* Created mapping cross reference file to faciltate docuatation and cleaning up names - work in progress https://goo.gl/eaaNQb
* Created new database schema for world_object - modified mysqlinstall.bat to refect new baseline
* created script to ETL old schema to new schema.   I have not included it as we will be refactoring the initial data load to use the new
* schema according to Ripley.   I have the script tested and posted on my dropbox if anyone wants it.   I also have a complete data dump that
* zips down to a manageable size.
* BaseAceObject is now using the new schema
* I re-hooked up telepoi to use the new schema.   Still to do, convert to constructed statement
* Next steps - refactor AceObject and make sure world objects load again.
* Once that is complete - start same process using clone of this schema for character as discussed.

* renabled more data loading.

* Continued work on hooking data back up.   Working on moveto debug command - this creates a world object.   Not quite there yet.

* WIP

* Making progress.   Test object able to be spwaned from new schema.   Still to do, renable constructed statements, clean up and re-enable the other constructed statements.

* updated worldbase

* * Intital work done for new schema.   Rebased and removed update sql files. (#353)

* Tested and the auto setting of Physics and Weenie Header Flags looks really solid.   Side note, the values we have
* in the database for weenieHeaderFlags and PhysicsDescriptionFlag should probably be dropped we don't read them or use them now.
* Doors, portals NPC's and signs are all back in the world now.
* I would suggest we remearge with the main branch sooner rather than later - we can create another branch to introduce these
* changes into the character side.
* TODO items:
* Creature spawns need to be refactored - I left them commented out.   We need to ditch seperate tables that we have now, I think all
* creature can use what we have now, plus maybe two additional world tables.   Everything else fits into the current schema.
* Test Ripley data and update ACE_World.
* Refactor portals - I just left the old way in and faked it out with a view.
* Once this looks good and stable and we fix any found bugs - we need to clone this over to the character database and start refactoring
* That will get us to persisted inventory.

* Objects - Game data refactored - issue with character login (#355)

* wip

* WIP - character login is trying to persist a world object

* Still throwing an exception on player login.

* Working Code - finished GameData - need to complete PhysicsData and ModelData.   Thanks to @Lidefeath for finding my issue.

* WIP compiles but has error on run.   Data changes have broken something.   Will fix tomorrow.

* Wip - nothing really working yet.   I can log in but item creation is not working.

* Objects (#357)

* wip

* WIP - character login is trying to persist a world object

* Still throwing an exception on player login.

* Working Code - finished GameData - need to complete PhysicsData and ModelData.   Thanks to @Lidefeath for finding my issue.

* WIP compiles but has error on run.   Data changes have broken something.   Will fix tomorrow.

* Wip - nothing really working yet.   I can log in but item creation is not working.

* Best attempt stabbed (#358)

* wip 1

* wip 2

* wip 3

* wip 3

* i think thats it for now.  good luck!

* Read cached characters and launch to char list (#360)

* First corrections and commenting out so the start to command line works

* The basics for launching to character list is working.

* Edit config.json for AppVeyor

* Rework Base SQL scripts. (#361)

Expect broken execution until views are corrected for ace_shard

* Cleaning up error list (#362)

Clearing stylecop issues and warnings in Error List

* ACE Enum adjustments (#363)

* More Enum Adjustments (#364)

* More Enum Adjustments

* Further Enum Refinement

* Changed Enum Value

* More Enum and Object Realignment (#365)

* Adding Enums to better align with AC standards. GroupTypeChat and AccessLevel will be converted to these.

* Object level changes to go with enum resorting

* Extend ORM to allow aggregate functions i.e. MAX(column) and (#366)

* Extend ORM to allow aggregate functions i.e. MAX(column) and implement GetNextCharacterId

* For AppVeyor, thanks @ogmage78 for the sql

* Implements IsCharacterNameAvailable and fixes some errors in the chargen code. (#367)

* Character Loading (#368)

* Cleaned up some whitespace issues.   Still understanding the direction.

* WIP added enums for PropertyAttribute

* Wip got a lot of aceCharacter done - working on position - about 1/2 done.

* WIP - Ace Character Loading.
* Intital work done for loading character from ace_shard.   Rebased and removed update sql files.
* Tested up to position loading.   Made changes to position, but have not loaded the dictionary yet.
* Fixed a few bugs - attribute loading had a few.
* TODO items:
* Finish up loading positions then see what is left.
* Work on saving as OptimShi - has character creation ready to go.

* Fixed for rebase and apveyor

* Hand wrote view per request and removed unneeded position.

* Read character creation values from client_portal.dat  (#369)

* Read character creation values from client_portal.dat and assign to appropriate Character Properties

* Added AceCharacter properties for the character appearance data

* More fun in Zombieland - character loading.    (#370)

* [Og II]
* Continued work loading character from ace_shard.   Rebased
* Added cascade delete to all child tables in ace_shard.
* Completed and tested up to skillz loading.   Made a few changes on the db side for key consistancy.
* TODO items:
* Finish up loading - spells, friends, allegiance info, spell comps, spell bars etc. etc....

* Fixed bug in setXXXProperty methods with the add new.   Was not setting the AceObjectId

* Fixed auto inc and unsealed position class and made aceObjectId virtual again.

* SaveObject implemented in ShardDatabase.cs (#371)

* First steps of SaveObject

* Hopefully I didn't bork anything too hard.

* Character creation -- data present on save appears to make its way to the DB.  Thanks to Lidefeath for the starter here.

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Cleanup of DbGetListAttribute (#372)

* First steps of SaveObject

* Hopefully I didn't bork anything too hard.

* Character creation -- data present on save appears to make its way to the DB.  Thanks to Lidefeath for the starter here.

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Reworked DbGetListAttribute, got rid of hacky code.

* Forgot to remove sloppy comments from refactoring.

* Create Database.cs

* Fix the "You do not own this character" error. (#373)

* Refactoring, save/restore progress on object overhaul (#375)

* First steps of SaveObject

* added todo

* Hopefully I didn't bork anything too hard.

* Character creation -- data present on save appears to make its way to the DB.  Thanks to Lidefeath for the starter here.

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Working on player login.   Getting closer.   At SendSelf in player.cs

* Reworked DbGetListAttribute, got rid of hacky code.

* Forgot to remove sloppy comments from refactoring.

* Create Database.cs

* Continued work on character login.   A little closer - we can get into the world now.   Please see change log for list of outstanding items.

* Can log in, and walk around.  Some properties still wrong.  Still need to submit several DB level fixes.

* Many fixups/bugfixes.

Positions now save.
Character logs in.
Game doesn't crash.
Can open multiple sessions.
(some) ORM issues fixed

Issues:
World Objects still don't appear in game.
Race found in ShardDatabase (commented)

* Minor cleanups.

* Object overhaul (#376)

* First steps of SaveObject

* added todo

* Hopefully I didn't bork anything too hard.

* Character creation -- data present on save appears to make its way to the DB.  Thanks to Lidefeath for the starter here.

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Removed all references to SaveCharacterOptions -- replace with SaveObject().

* Working on player login.   Getting closer.   At SendSelf in player.cs

* Reworked DbGetListAttribute, got rid of hacky code.

* Forgot to remove sloppy comments from refactoring.

* Create Database.cs

* Continued work on character login.   A little closer - we can get into the world now.   Please see change log for list of outstanding items.

* Can log in, and walk around.  Some properties still wrong.  Still need to submit several DB level fixes.

* Many fixups/bugfixes.

Positions now save.
Character logs in.
Game doesn't crash.
Can open multiple sessions.
(some) ORM issues fixed

Issues:
World Objects still don't appear in game.
Race found in ShardDatabase (commented)

* Properly load Data Id instances.  Objects now "spawn" in-world, but don't interact properly.

* Fixes to worldbase vw_teleport_location, player description, character handler.  Player now gets proper stats and can teleportpoi.  Vital inital values are off.

* Sets options on load.  May be bad/broken.  Need to seriously think how AceObject/AceCharacter and WorldObject/Player should interact.  We don't do that well now.

* Fix to attribute2nd, using uint24 instead of uint16 for value (because monster's health can get huuuge).

* Position refactor into backend object AceObjectPropertiesPosition and front-end object Position.

* * fixed issues with the weenieHeaderFlags setting method, fixed PhysicsDescriptionFlag setting issue as well.
* cleaned up and rebased data scripts for WorldBase and ShardBase
* Found issue in my data that was ETL to our new schema - had two flag fields Reversed - that is fixed but would be no issue
* once we have Ripley's new data export.   I have shared out a link to the cleaned up data for use while we finish the new export.
* https://www.dropbox.com/s/pohcruvalt9s38h/WorldandShardData.zip?dl=0
* I put in a nasty hack - hard coded weenieClassId on character save - it was being set to 0 and I could not find it.   I marked with with a todo.
* player.cs line 490

* Create Landblock.cs

* Updated changelog

* Fear the Walking Dead - More work on our object overhaul - bug fixes and continued work (#377)

* Testing - fixed a few null reference check errors.   Added in OptimShi player apperance code.

* added back code needed for ci

* Sending DataId and InstanceId data to character description.

* Forgot to update change log

* Added Ripley's changes to scheam

* Create ShardBase.sql

* Create WorldBase.sql

* Made requested changes

* Lord BucketHead - temp fix.   Added start of equipping items and POC code (#378)

* * Added getting and setting ContainerID and Wielder into AceObject and surfaced in worldObject
* Put in a hack to show how equiped weapons and shields work.   We will need to establish a place to store this data.
* I put in big TODO to indentify the hack - it is benign and will not impact anything else other than to demo the placement
* of the spear in Rand the Game Hunters hand in Holtburg.
* Modified SetPhysicsDescriptionFlags so it can be container and weilder aware.
* Worked with OptimShi and we put in a fix for Lord BucketHead.

* Found and fixed one more bug with hair styles

* Update Player.cs

removed comment that was out of date.

* SQL Scripts Re-based (#379)

* SQL Scripts Rebased

* More alignment of base DB script.

* Final SQL script rebase

* Code cleanup and a few bug fixes.   (#380)

* Code cleanup and a few bug fixes.   Working to trello card.   Board updated.

* Added first part of wield item.

* Update to remove class diagram

* Update GameActionGetAndWieldItem.cs

* Update GameEventWieldItem.cs

* Fixed Position Saving. (#381)

* Fixed Position Saving.

* Fixed other minor character initialization bugs

* Cleanup backing AceObject (#382)

* Reworked AceObject/Player/WorldObject to better repsect AceObject as a unit backing.

* Enough cleanup to commit.  Fixed vitals (Attribute2nd) in the process.

* Fixed bad rebase errors.  Appears to work now.  Can confirm vitals (Attribute2nds) initialize well, and can be raised.

* Fixed bug with player creation and made a bunch of comments and notes about things I discovered so they would not get lost. (#383)
2017-06-16 09:54:39 -04:00
OptimShi
11a69d919c Dat Updates (#329)
* Added DatReader to the cell-export console function

* Add caching to all file.dat read objects. Added EnvCell (dungeon blocks/indoors)

* Merge with master, changelog.

* Add a new line at EOF for a few files.

* Resolved some StyleCop issues.

* Attempt to resolve PR differences.
2017-05-06 21:20:41 -04:00
Ty Conner
c4a3da0b10 Full reset of repo (#327)
* Full Wipe

* Restored git settings

* Restored Root folder

* Restored Source & Database
2017-05-05 10:26:35 -04:00
Mogwai-AC
9709959eee Dat reader - creating a PR so I can comment. (#235)
* Removed DungeonViewer link as the GitHub repo no longer exists

* DatReader, CharGen FileType, SetupModel FileType, and PaletteSet FileType

* Load basic player features from character creation

* Loads all correct player data from Character Creation.

* Adjusted palette/hue calculation

* Changed DatReader.buffer to Buffer, since the get is exposed publically. Also added some additional comments.
2017-04-12 20:04:37 -04:00
lurker-mcdoogle
1faa88b3b6 * improved cell.dat and portal.dat exporting, created admin server commands for them as well as unit tests that can be uncommented. (#127)
* bug fix in DatFile with the FileOffset being wrong.  started detailed documentation on dat file contents.
* worked on some object parsing.  found a bunch more object types in the client - now categorizes ALL portal files.
2017-03-15 08:12:21 -04:00
Mogwai-AC
c4793ec44f portal.dat and cell.dat loading (issue #3) (#104)
* cell.dat loading

* portal.dat loading

* reading sector size from dat file
2017-03-04 07:59:37 -05:00