* Reorganize MapEngine
This is already turning into a mess...
* Map engine selects tile index to use
Still very ugly
* Fix subtile flag combination
* Prepare randomly generated base tiles
* Restore collision viewer
* Movement works again, searches for straight paths
Paths are now d2vector slices
* Fix LOS calculation
* Fix test (I think)
* Unnecessary constructor assignments removed.
* Position implemented in d2common.Path
* Position implemented in mapEntity.Step.
* Position implemented in d2common.PathTile.
- made an enum for NPCActionType to get rid of magic numbers
- moved the enum to d2enum
- fixed lint errors in npc.go
- fixed lint errors in mapstamp.go (because it was using npc.go)
* Comments and newlines in engine.go
* Comments and newlines in object.go
* Comments and newlines in animated_entity.go
* Comments and newlines in missile.go
* Comments and newlines in npc.go
* Comments and newlines in player.go
* Removed object.go (incorrectly merged it in during rebase).
* Comments and newlines in renderer.go.
* Comments and newlines in map_entity.go.
* Comments and newlines in walk_mesh.go.
* Comments and newlines in viewport.go and tile_cache.go.
* Comments and newlines in stamp.go and wilderness_tile_types.go.
* Comments and newlines in everything else.
* Move MapEntity to d2interface
* New package d2object, first object initFun
Moves objects out to their own package and implements the very first
init function, torches/braziers now gets their animation mode set at creation.
* Apply name again
* Turn on waypoints
* DS1 reader no longer looks up objects
* Start of enteties managing their own equipment
* stringer and string2enum CompositeType
String2enum
* Use CompositeType stringer to simplify composite
* Finally fix GetDelimitedList
And lint issues
* NPC selects random equipment
* adding comments to d2interface for linter
* moved d2render renderer interfaces and types into d2interface
* fixed most lint errors for monstats loader
* de-lint d2data wip
* d2data: resolve linting errors
* WIP refactor of d2map stuff
* more d2map refactor
adding realm init to game client
passing map engine from client and server into realm at init
change `generate map packet` to have act and level index as data
* client explodes, but getting there
* realm now initializes, networking works, but map generators dont currently do anything
* changed the way that level type records are loaded
* fixed funcs for level data lookups
* started implementing level generator, currently crashing
* client no longer exploding
* d2networking refactor
put exports into d2client.go and d2server.go
kept GameClient and GameServer methods into their respective files
made methods for packet handlers instead of the giant switch statements
* bugfix: getting first level id by act
* minor refactor of gamescreen for readability
* towns now generate on server start, create player takes act and level id as args, levels have their own map engine
* Use integer directions for rotating map entities
* Manage composite directly in npc
* Player manages its own composite
* Split up animation mode types
Players, monsters, objects all have their own types
* Clean up AnimatedEntity
* Rename AnimatedEntity -> Object
* Keep the object txt record on hand in Object