Commit Graph

776 Commits

Author SHA1 Message Date
lord 0218cad717
organize d2common pakage (#716)
* move music path enumerations into d2resource

* move text dictionary (.tbl) loader into d2fileformats sub-package d2tbl

* lint fix, add doc file for d2tbl

* moved data_dictionary.go into d2fileformats sub-package d2txt, added doc file

* added sub-packages d2geom for geometry-related things, and d2path for path-related things

* moved calcstring.go to d2calculation

* move bitmuncher, bitstream, stream reader/writer from d2common into sub-package d2datautils

* fix lint errors in d2datadict loaders (caused by moving stuf around in d2common)

* move size.go into d2geom

* move d2common/cache.go into sub-package d2common/d2cache

* renamed d2debugutil to d2util, moved utility functions from d2common into d2util
2020-09-08 15:58:35 -04:00
lord 50d40fb5d3
D2loader (#714)
* adding logger implementation to d2common

* Adding file loader implementation

The file loader works in terms of `Sources` and `Assets`. A `Source` is
something like a filesystem that has a cache. An `Asset` is something
that implements `io.ReadSeeker` and has a few methods of its own.

There are currently `Source` implementations for MPQ archives and for the
host filesystem, meaning that one can specify a directory on the host fs to
load files from.

`Sources` are added to a loader with `loader.AddSource(path)`, where `path`
resolves somewhere on disk. In the case that the path points to an MPQ,
then an MPQ `Source` is created and added to the loader. If `path` resolves
to a directory, then a filesystem source is added.

Files are loaded with `loader.Load("data/global/excel/monstats.txt")`, and the
sources are searched in the order that they were added.

* adding tests for d2common/logger_test.go

* adding tests and testdata for d2loader

* logger lint fixes, fixed missing test case

* minor edits, lint fixes, changes some comments, embedded Logger into Loader

* moved d2loader into d2common (I dont think it belonged in d2core)

* removed my simple cache implementation in favor of our existing cache in d2common
2020-09-08 15:45:26 -04:00
lord 52125932f8
testing to see if this fixes the github build issues (#715) 2020-09-06 17:09:05 -04:00
Brendan Porter 439b2e7472
Fixes game crash on exit (#707) (#713) 2020-09-06 01:17:33 -04:00
Gürkan Kaymak 32a58fd5d3
Added mini panel (#711)
* resolves #685, added mini panel

* formatting
2020-08-25 09:10:26 -04:00
liberodark 6a6c4d48da
Update build.sh (#710)
Fixe #437 and not reinstall libs if you have installed libs
2020-08-24 22:26:24 -04:00
thetogi 41e43ac6be
Display HP/Mana stats when hovering over or clicking respective globe. Update d2debugutil to not use internal package for assets. (#709)
* Set HP/Mana stats when globes are clicked

* Display HP or Mana stat when hovering over globe

* Display HP/Mana stats when hovering globe or when toggling by clicking the respective globe. Rename internal to assets and move assets package into folder.

* Adding .bmp to assets folder
2020-08-24 15:50:33 -04:00
AndrejMijic 2ceba68c73
Add initial calculation string parser (#706)
* Add objgroup.txt loader

* Add parser

* Add parser

* Add tests
2020-08-16 21:56:28 -04:00
Ziemas dccb930f5c
Only draw shadows for layers that should have them (#704)
* Don't draw shadows for transparent layers

* Also use cof shadow setting
2020-08-16 14:59:34 -04:00
Ziemas 8d87c19532
Draw entities back to front within tiles (#705)
* Draw entities per subtile for correct depth order

* Use a temporary entity slice for depth sorting

Speeds things up quite a bit
2020-08-16 14:59:03 -04:00
Gürkan Kaymak 858fa18068
lint fixes (#703) 2020-08-11 18:01:33 -04:00
Stephen Horan 2254e4b2a6
Networking Refactor (#698)
* Networking refactor

* Networking refactor

* Networking refactor

* Networking refactor

* Refactor netpacket for json.Rawmessages as the data type and client side JSON decoder.

* Move game server connection handler to json decoder.

* Move game server connection handler to json decoder.
2020-08-09 20:32:47 -04:00
lord 0ea6bd5b92
add rare prefix+suffix loaders, d2items use rare item names (#702)
* adding loaders for rare prefix/suffix records

* switch to slices instead of maps for storing rare prefix/suffix records

* rare items now use the rare prefix/suffix names
2020-08-06 22:32:40 -04:00
lord 16b8a6467f
fixed most lint errors in d2data (#701)
- moved ds1 object definition into the ds1 dir
- added doc files
- only lint errors remaining are for the unused variables in d2video
2020-08-06 16:45:38 -04:00
lord 33f66badfc
d2enum lint (#700)
* fixing some lint errors in d2enum

* fixed lint errors in d2enum
2020-08-06 16:45:22 -04:00
lord acc4c7a13e
d2ui refactor (#699)
* fixed lint errors in button.go

* fixed lint errors in checkbox.go

* Removed d2ui singleton, fixed nearly all lint errors

- Changed `UI` struct to `UIManager`, removed singleton
- UI element provider functions are now methods of the UI Manager
- Screens now use the UI manager to create UI elements
- game panels in d2player now use the UI Manager to create UI elements
- Only the UI manager knows about "widgets"; calls to `d2ui.AddWidget` in Screen instances have been removed

* changed ui element provider methods from `Create` to `New`
2020-08-06 10:30:23 -04:00
lord c1ed5a2381
fixed a couple lint errors in d2term (#697) 2020-08-05 22:32:23 -04:00
lord ca7412aea6
removed singleton screen manager instance (#696) 2020-08-05 22:31:56 -04:00
lord 4507b1e1c1
fixed lint errors in d2render (#695) 2020-08-05 22:04:36 -04:00
lord 8b2b991b12
D2mapengine remove entity, minor edits (#694)
* implement entity removal

* add rgba color func, fix some lint errors in d2map

* bugfix for map entity tests
2020-08-05 21:27:45 -04:00
lord 0a6915a040
fixed lint errors in d2input (#693) 2020-08-05 13:51:35 -04:00
lord 04275eb8b6
fixed lint errors in d2gui (#692) 2020-08-05 13:51:19 -04:00
lord e73299b99e
fixed lint errors in d2audio (#691) 2020-08-05 01:17:25 -04:00
lord 8e41133f39
lint and minor refactor of d2common (#690)
- moved contents of `d2common/math.go` into `d2math/math.go`
- removed lint errors from files in d2common
2020-08-05 00:03:33 -04:00
lord 319e1f0245
fixed lint errors in d2resource (#688) 2020-08-04 23:14:17 -04:00
lord fe992699b5
fix lint errors in d2interface (#684)
- fixed lint errors in d2interface
- removed `archived_` from interface names, was not necessary
- removed the Bitmuncher and Bitstream interfaces, as they are too specific and unnecessary
2020-08-04 22:53:36 -04:00
lord aa4a936fde
fix lint errors in mpq package (#683) 2020-08-04 22:52:54 -04:00
lord 6ef931ddd5
remove lint errors from dt1 package (#682) 2020-08-04 22:23:41 -04:00
lord c3326a30f1
fix lint errors for dc6 package (#681) 2020-08-04 22:23:26 -04:00
lord 120afe51a1
fixed lint errors in d2debututil (#678) 2020-08-04 22:23:15 -04:00
AndrejMijic 4a48acb8ba
Add objgroup.txt loader (#677) 2020-08-04 12:12:03 -04:00
lord 466855e5f5
remove lint errors from d2datadict (#676) 2020-08-04 11:16:06 -04:00
AndrejMijic c216ddab53
Add monpreset.txt loader (#675) 2020-08-04 09:06:33 -04:00
lord f49770a0d7
Bugfix inventory panel position (#673)
* adding simple inventory item descriptions

* adding method to identify items

* offset description so it doesn't overlap with item in inventory grid

* needed to offset inv panel by 1px
2020-08-03 13:47:45 -04:00
lord 76ed8ff180
simple inventory item descriptions (#672)
* adding simple inventory item descriptions

* adding method to identify items

* offset description so it doesn't overlap with item in inventory grid
2020-08-03 13:44:00 -04:00
lord 8560956f7f
added background color to labels (#671) 2020-08-03 00:48:17 -04:00
lord 50a070d7b0
unidentified items should use common record name for label (#670) 2020-08-02 23:01:06 -04:00
lord 53bb919411
d2ui.Label: add support for color tokens in labels, multiple colors per label (#668) 2020-08-02 21:29:05 -04:00
Bojan Novković 0e1b30b91a
Added loaders for compcodes.txt, events.txt and monai.txt (#665)
* added loaders for compcodes.txt, events.txt and monai.txt

* fixes in response to PR comments

Co-authored-by: BojanoN <bojan.novkovic@kset.org>
2020-08-02 21:27:33 -04:00
AndrejMijic efb554c42b
Add PlayerClass.txt loader (#667) 2020-08-02 21:26:57 -04:00
lord 524132c122
D2datadict unique items bugfix (#669)
* d2ui.Label: add support for color tokens in labels, multiple colors per label

* unique items should use the item name as the map key
2020-08-02 21:26:07 -04:00
lord 6a8b9aada1
Minor edits: debug entity frame bounds, debug `spawnmon` command (#666)
* adding debug printing boxes for entity bounds

* minor edits

- adding `spawnmon` command. currently does not have a netpacket, just for debug
- adding `GetSize` method to map entities for getting frame bounds (for debug printing)

* bug fix
2020-08-01 19:03:09 -04:00
AndrejMijic 6514fd15de
Add monseq.txt loader (#664) 2020-08-01 17:55:34 -04:00
Ziemas 39ab8d19f5
Set proper sizes for DCC frames (#663) 2020-07-31 21:22:56 -04:00
AndrejMijic 3fea5a096d
Add monequip.txt loader (#662) 2020-07-31 18:24:47 -04:00
Bojan Novković 247bda97c6
Added loaders for itemratio.txt, Overlay.txt and UniqueAppellation.txt (#660)
* Added loaders for itemratio.txt, Overlay.txt, UniqueAppellation.txt

* Adjust unique appellation loader for expansion data

* fixes: response to PR comments

* overlay.go: PR comment fixes

Co-authored-by: Bojan Novkovic <bojan.novkovic@kset.org>
2020-07-31 18:14:41 -04:00
Bojan Novković 38852d0285
added loaders for misscalc.txt and skillcalc.txt (#661)
Co-authored-by: BojanoN <bojan.novkovic@kset.org>
2020-07-31 18:00:10 -04:00
AndrejMijic 44e84c8b10
Add MonSounds.txt loader (#658) 2020-07-31 17:56:00 -04:00
lord 1275a7f654
D2item hover highlight + name (#656)
* added highlight to animated entity

* moving provider functions for item, missile, npc, player into package export file d2mapentity.go

* changed `Create` to `New` in map entity provider functions

* add item highlight on hover

* add Name method to item entity
2020-07-31 17:55:11 -04:00
AndrejMijic 05fa7d93ce
Add monlvl.txt loader (#655) 2020-07-31 15:00:09 -04:00