Commit graph

31 commits

Author SHA1 Message Date
Mag-nus
652e076d1f
ACE.DatLoader IUnpackable progress (#612)
* ACE.DatLoader: XpTable updated

* ACE.DatLoader physics and environment using new unpack pattern

* ACE.DatLoader ContractTable updated to IUnpackable

* ACE.DatLoader EnvCell refactored to new IUnpackable

* Update PackableExtensions.cs
2018-02-03 13:56:28 -06:00
Mag-nus
bacd751d8a
ACE.DatLoader more IUnpackable work (#610)
* ACE.DatLoader: XpTable updated

* ACE.DatLoader physics and environment using new unpack pattern
2018-01-31 21:09:08 -06:00
Mag-nus
e5fb929f39
ACE.DatLoader RegionDesc updated to the new format w/bug fixes (#607)
* ACE.DatLoader RegionDesc updated to the new format w/bug fixes

* Missing file
2018-01-28 13:41:46 -06:00
Mag-nus
337ac517b2
More dat refactoring, this time based on SetupModel and Hooks. (#603) 2018-01-27 19:39:07 -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
5cefff9a5a
ACE.DatLoader flag fixes for Portals (#593)
* Change >> 1) & 1 to & 2

Cosmetic change pointed out by Rawaho.

* Better fix of the Portal Flags in the dat code
2018-01-21 07:19:12 -06:00
Ty Conner
ef62342eab
Convert PropertyInt properties from uint to int (#559)
* Update EmoteCategory, EmoteType and SpellType enums

* Add CombatStyle enum

* Rebase SQL scripts

* Change uint to int in SQL

* Adjust SpellType

* Changed all PropertyInt properties from uint to int

* Some CombatStance work + StyleCop clean up

* Update README

* Updated ACE-World requirement and appveyor
2017-11-01 13:53:08 -04:00
OptimShi
6d927fc69f Update SetupModel (#556) 2017-10-28 01:55:52 -04:00
StackOverFlow
723e4a649f Inventory Refractor / Bug fixes (#539)
* CurrencyToItems

* da

* clean up

* spelling

* Inventory updates

* update

* update

* update

* sync change

* update..
max pack size weird =/

* resolve

* updates

* fixed - one small issue but far from a show stopper.. something weird with items showing a far off target on sale.

* update

* update

* Clean Up

* XML CLEAN UP

* Update Change Log

* Update - Vendor ID at distance seems fixed.

* TempSolotionToGoldCalc

* fix gold count on drop

* Update Creature.cs
2017-10-19 09:21:30 -04:00
OptimShi
6d80d4c93e Animation Length (#521) 2017-10-04 08:30:52 -04:00
Charles
820b2334e5 Don't bend the knee - Wielded items persisted and a few old bugs squashed. READY TO MERGE (#511)
* WIP

* wip

* WIP Save Wielded Items

* WIP

* wip - wielder and parent is fubar

* WIP

* WIP

* Fixed examination.   Move to pack still not working - probably inventory check related.   Getting closer.

* Error saving wielded - need a little help.

* Updated change log

* Added update script to appveyor

* Fixed data saving issue - thanks OptimShi   More progress - still have a bug from wielded to drop item.   Looking good at this point.

* persisting wielded items works.   Equiping weapons and shields works, but is not right on persisted login.   Look at SendInventoryAndWieldedItems (container.cs)

* Still have bugs.   Steps:
clean all ace_object except char
@weapons
equip all 4 items
@save-now
logout
login in - look at wieldeditems view

* WIP Fixed pack slot placement order bugs.   Next fix save wielded item - getting a duplicate key value on currentwieldedlocation

* Wip - wielder keeps getting unset.   It looks like the world object and the aceobject are not in sync.

* have a currentwielded location bug still

* Tested wielding and saving.   Need to test unwielding net.

* WIP - getting closer.    CurrentWieldedLocation not getting set

* I either have a bug with the underlying aceObject to wo assication on wielded items, or there is a flag issue.   Equipping an item SOMETIMES does not set the currenlty wielded location.   I can find no path where it is not set.

* Wip - still having issues

* Wip Item still will not appear second equip

* wip

* Making progress but there are problems with sequenes.    Inventory not created as persistant world objects is causing issues.   sequences are reset each time the object is created.

* Left off at line 1413 of player.   Convert inventory to persisted worldobjects (needed for sequences to work right must be maintained for length of session)

* Switched to world object based inventory.   This looks to be working.   I have some cleanup to do but looking good.   Hand held items on login are not oriented correctly need to fix that.

* This is getting really close.   I still have a few minor bugs.

* Fixed issue with appearence updating if not wielding from main pack.   I still have a dirty flags issue.  I may need some help to debug this.

* Saving now works in all cases.   I had to put in a hack around lines 767 - 774 of the shardDatabase.

* WIP looking for save bug.

* The issue with the duplicates on save is that I have the same object in two lists on a move container.   Still debugging.

* Fixed all of Morwai's feedback.

* I am never going to find this bug.

* added a workaround for item save.   It will look for dirty items and do a delete and insert.

* Fixed ddevec's feedback.
2017-09-29 19:26:08 -04:00
Mogwai-TheFurry
e2ff826a11 items from failed crafting (#509)
* items from failed crafting

* stylecop cleanup

* typo in sql script
2017-09-19 12:25:45 -04:00
OptimShi
43572e8606 Yet More client_portal.dat Parsing Updates (#507)
* GfxObj(0x01) and Environment(0x0D) client_portal.dat Parsing Added

* Added Surface 0x08 items
2017-09-15 11:22:51 -04:00
OptimShi
732e68391c More Dat Parsing Updates (#503)
* More Portal.Dat Parsing

* Update

* Fixed Palette, removed Debug commands

* Fixed spacing issue

* Added ContractTable
2017-09-06 10:16:49 -04:00
OptimShi
440d3709b3 Portal.dat Parsing Additions (#502)
* Added more dat filetypes

* Finalized wav-export function
2017-09-04 10:04:13 -04:00
OptimShi
7a437b8230 Region & Scene (#500)
* WIP

* Region and Scene File Types completed.

* Added some comments
2017-09-02 11:36:24 -04:00
OptimShi
ffdc353d5a Added Animation parsing from the client_portal.dat and all relevant hooks and properties. (#495)
* Added Animation parsing from client_portal.dat

* Odd character fix

* Adjusted for feedback
2017-08-18 08:22:44 -04:00
OptimShi
44dc170bcf Spell Formula (#493)
* Added GetSpellFormula() to SpellTable

* Typo

* Fixed some bugs.

* Updated ReadPString to Default encoding

* Renamed debug command 'spell' to 'getspellformula' and changed access level

* StyleCop issues...

* Fixed bug with comps and extended charcters in spell names/descriptions
2017-08-14 09:01:39 -04:00
OptimShi
eda966f4e6 Added MotionTable parsing and relevant dat classes (#489) 2017-08-10 10:33:26 -04:00
Ty Conner
7c54c43d0e Fix for SetupModel Crash (#470) 2017-07-21 13:29:47 -04:00
OptimShi
46b5baec30 Re-added SpellTable, CLandblockInfo and fixed some StyleCop issues. (#387)
* Re-added SpellTable, CLandblockInfo and fixed some StyleCop issues.

* Fixed PaletteSet cache filed loading update

* Fixed a pair of no-new-line at end-of-file issues.
2017-06-17 18:23:31 -04: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
OptimShi
177bf95801 Changed SetupModel.ReadFromDat function to be more user-friendly. (#313)
* Changed SetupModel.ReadFromDat function to be more user-friendly. Added use to Lifestone.OnUse.

* Fixed ChangeLog date to hide the fact that I can time travel.
2017-05-02 09:26:20 -04:00
OptimShi
1fc71b3f76 Landblocks (#309)
* Added correct PositionZ reading to the tele command

* Add attribution/thanks

* Changelog
2017-05-01 08:20:50 -04:00
OptimShi
3e751f584b Added XpTable class to ACE.DatLoader and removed the JSON Xp files. Some additional cleanup in the other DatLoader.FileTypes classes. (#291) 2017-04-26 07:56:26 -04:00
Ty Conner
5d7b64265d Added currentMotionState and support within ACE (#286) 2017-04-24 08:46:27 -04:00
Lidefeath
74c405fe76 Read the Generators from portal.dat file 0x0E00000D and enhance DatRe… (#273)
* Read the Generators from portal.dat file 0x0E00000D and enhance DatReader to handle obfuscated strings.

* Found a better name for ReadOString. Left ReadPString untouched as that's the name used in the client.
2017-04-24 07:23:05 -04:00
OptimShi
9837631690 Added ClothingTable object and loaded Startup Gear on characters. Other minor misc updates/fixes relating to character display. (#274) 2017-04-23 13:39:55 -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