1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-06-16 04:25:23 +00:00
Commit Graph

726 Commits

Author SHA1 Message Date
Ziemas
c840e140f7
Stereo panning for sound effects (#654)
Randomly pan event sounds

Adapted from ebiten example
2020-07-30 21:50:27 -04:00
AndrejMijic
42cd1e1a3b
Add monumod.txt loader (#653) 2020-07-30 21:49:29 -04:00
Ziemas
29ea71489d
Sound engine and sound environments (#652)
* Working sound engine and sound environments

* Clean up sounds.txt loader

* Make global volume settings apply properly

Als shuffle some stuff around

* Reset sound engine on game unload
2020-07-30 16:17:26 -04:00
lord
78ecc3557e
simple item spawning in map (#651)
* wip d2items system and item properties

* added loader for TreasureClassEx.txt

* wip item spawn from treasure class records

* wip items

* add call to init item equivalencies, remove treasure class test from d2app

* made item affix records global var a map of affix codes to the records

* changed how item to item common record equivalency is determined

* changed set items records export to a map of their codes to the records, grouped property params into a struct

* changed property parameter field from calcstring to string

* fixed bug in stat value clone

* adding equipper interface as part of stat context, eventually to be used to resolve set bonus (among other things)

* made the item interface simpler, only needs name and description methods

* adding equipper interface, for anything that will equip or have active items

* handle case where min and max are swapped, removed commented code

* added property/stat resolution for magic, rare, set, and unique items

* adding item generator which can roll for items using treasure class records

* fixed item equivalency func being called in the wrong spot

* added item spawning

- added packet type for spawning items
- added client/server handlers for SpawnItem packets
- added map entity for items
- added simpler item provider function in diablo2item package
- added debug terminal command for spawning items
2020-07-30 15:04:05 -04:00
AndrejMijic
9789372e8f
Add npc.txt loader (#650) 2020-07-30 14:12:18 -04:00
AndrejMijic
c398c8f1ad
Remove teminal time scaling (#649) 2020-07-30 12:59:17 -04:00
AndrejMijic
333b8610ac
Add pettype.txt loader (#648)
* Add pettype.txt loader

* Remove go.mod replace
2020-07-30 11:31:32 -04:00
lord
bfd3f1046d
D2items WIP (#646)
* wip d2items system and item properties

* added loader for TreasureClassEx.txt

* wip item spawn from treasure class records

* wip items

* add call to init item equivalencies, remove treasure class test from d2app

* made item affix records global var a map of affix codes to the records

* changed how item to item common record equivalency is determined

* changed set items records export to a map of their codes to the records, grouped property params into a struct

* changed property parameter field from calcstring to string

* fixed bug in stat value clone

* adding equipper interface as part of stat context, eventually to be used to resolve set bonus (among other things)

* made the item interface simpler, only needs name and description methods

* adding equipper interface, for anything that will equip or have active items

* handle case where min and max are swapped, removed commented code

* added property/stat resolution for magic, rare, set, and unique items

* adding item generator which can roll for items using treasure class records

* fixed item equivalency func being called in the wrong spot
2020-07-30 10:14:15 -04:00
AndrejMijic
4dc0aa0f48
Add PlrMode.txt loader (#647) 2020-07-30 09:53:41 -04:00
AndrejMijic
a1ea22c81f
Add reading of ElemTypes.txt (#644) 2020-07-30 02:41:19 -04:00
Andrew Doing
cec3fb91d8
Add shrines.txt loader (#642) 2020-07-29 18:03:06 -04:00
Greg Jones
50fd6608cf
d2datadict: Add books.txt loader (#640) 2020-07-29 17:26:20 -04:00
Huw Griffiths
a31fb173eb
d2datadict: Add Monmode.txt loader (#638) 2020-07-29 08:38:34 -04:00
Andrew Doing
6f30dffa1c
d2datadict: Add soundenviron.txt loader (#639) 2020-07-28 16:35:22 -04:00
Huw Griffiths
78470431d6
d2datadict: Add Montype.txt loader (#637) 2020-07-28 16:34:01 -04:00
Huw Griffiths
b7f8aa8e90
d2datadict: Add Monprop.txt loader (#636) 2020-07-28 07:54:05 -04:00
Huw Griffiths
35d936ac4e
d2datadict: Add runes.txt loader (#635) 2020-07-28 07:53:32 -04:00
Andrew Doing
495301a9b7
Add loading of states.txt (#633)
* Add loading of states.txt

* Lint states.go
2020-07-28 07:52:55 -04:00
Tim Sarbin
b13c581beb
Unlocked map update frame rate (#632)
* Started work on shadows

* Removed fps limiter

* Fixed build info bug
2020-07-27 15:00:50 -04:00
lord
0018044c83
D2data treasure class (#631)
* added loader for TreasureClassEx.txt

* fix lint error
2020-07-27 01:16:37 -04:00
Tim Sarbin
460e821a5e
Started work on shadows (#630) 2020-07-26 19:29:37 -04:00
Tim Sarbin
856043d8ac
Updated music logic (#629) 2020-07-26 15:17:00 -04:00
Tim Sarbin
7da1843f49
Lint cleanup (#628) 2020-07-26 14:52:54 -04:00
Tim Sarbin
53599928f7
re-ordered structures to optimize memory layout (#627) 2020-07-26 13:23:46 -04:00
Tim Sarbin
63aa1eebe9
Fix bad file names (#626)
* Fixed bad capitalization in names

* More bad name fixes

* temp rename for case sensitivity issues

* Temporary rename to fix capitalization
2020-07-26 13:06:37 -04:00
Tim Sarbin
8c8ab94f8c
Remove star, update refs. (#625)
* Added patreon supports to credits

* Remove astar path finding code.
2020-07-26 12:55:10 -04:00
Tim Sarbin
ab012b8f70
Added patreon supports to credits (#623) 2020-07-25 09:45:31 -04:00
Huw Griffiths
5e395092e7
Add qualityitems.txt loader (#622) 2020-07-25 09:37:43 -04:00
danhale-git
259c6e7e76
Vector method pointers (#621)
* All Vector methods which operate on the vector return pointers to it.

* All Vector methods which take vectors take Vector pointers.
2020-07-25 09:36:54 -04:00
Benjamin Maisonnas
89b031d2b7
fix(camera): focus the local player on viewport init (#620)
Thanks!
2020-07-25 09:36:15 -04:00
lord
b13175b070
d2data item related loaders (#619)
* added loader for ItemTypes.txt

* added loader for bodylocs.txt

* lint fix for item_types loader

* adding loader for sets.txt

* minor edit

* adding loader for SetItems.txt

* added loader for automagic.txt
2020-07-24 21:56:19 -04:00
Gürkan Kaymak
1ce81f1aec
fixed Id renaming in strings (#618) 2020-07-24 07:54:52 -04:00
lord
9e61079e93
Stats refactor (#617)
* add interface for stats, d2 is an implementation

* fix incorrect comment, remove ennecessary int

* simplified description functions, remove duplicates

* moved default stringer functions

* fixed incorrect stat combine method

* change `Create` to `New` in method names

* d2stats + diablo2stats refactored again

- simplified `NewStat` provider function
- added initializer for stat values that sets the stringer functions, value types, and combination types for values when created
- removed redundant description functions
- added stat value combination types `sum` and `static`

`static` stat values which are not altered when stats are combined. this makes sense for stats like proc-on-hit or +skills to class

example:
	Stat A: `10% reanimate as: skeleton mage`
	Stat B: `8% reanimate as: skeleton archer`
	Stat C: `6% reanimate as: skeleton archer`

	A and B can not be combined
	B and C can be combined to `14% reanimate as: skeleton archer`
2020-07-23 22:12:48 -04:00
lord
c114ab9eb7
add interfaces for stats, added diablo 2 implementation (#614)
* add interface for stats, d2 is an implementation

* fix incorrect comment, remove ennecessary int

* simplified description functions, remove duplicates

* moved default stringer functions

* fixed incorrect stat combine method

* change `Create` to `New` in method names
2020-07-23 19:03:58 -04:00
Gürkan Kaymak
7a49f3637f
lint fixes (#615) 2020-07-23 12:56:50 -04:00
Gürkan Kaymak
80e655964e
Removed some global variables (#611)
* removed some global variables

* fixed tests
2020-07-22 15:03:03 -04:00
lord
362147848d
entity debug rendering (#609)
* entity debug rendering, with command

needed to add getter method to MapEntity interface, so that's the reasoning for changing objects/npcs/player/etc

this currently brings allocs/s up to 10 (you can check by running `fps` command, se we need to look into d2debugutils and how it handles drawing text

* reverting velocity copy, broke the map entity tests. debug display wont show velocity currently.

* adding velocity debug
2020-07-21 08:51:09 -04:00
Ziemas
d0c6cd61dd
Simple LOS pathfinding without walkmesh (#610)
* 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)
2020-07-21 08:50:45 -04:00
lord
aadfa35e6b
Smooth camera targetting (#607)
* smooth camera with vectors

* add smooth cam  support to map engine test

smooth cam now works in map engine test.
clicking or holding the left-mouse button will move the camera.

also works with freecam mode in single-player.

* Update ebiten_renderer.go

did not mean to edit this file
2020-07-18 23:37:35 -04:00
lord
6db299b31d
remove most lint errors in d2common (#606)
* removed magic numbers from stream reader/writer and bitstream

* formatting, removing a couple more magic numbers
2020-07-18 18:07:38 -04:00
danhale-git
727e8244c6
Implemented Position in Path and PathTile (#605)
* Unnecessary constructor assignments removed.

* Position implemented in d2common.Path

* Position implemented in mapEntity.Step.

* Position implemented in d2common.PathTile.
2020-07-18 18:07:13 -04:00
lord
dbc07e2ce8
removed most lint errors in d2gui (#604) 2020-07-18 18:06:36 -04:00
lord
c92ad67eaa
removed most lint errors in d2gamescreen, except for map_engine_testing.go (#603) 2020-07-18 09:54:10 -04:00
dk
093ea3682e
fixing most of the remaining lint errors in d2fileformats (#600) 2020-07-18 00:02:45 -04:00
dk
fc31594277
removing magic numbers, adding rgba color creator func (#602) 2020-07-18 00:02:04 -04:00
dk
d56c4387ff
delint_d2networking (#599)
* delint_d2networking

not sure what to do about lint error G110 on calls to `io.Copy`, warns
about gzip compression bomb possibility, leaving those.

all todo's have been left.

* removed duplicate const
2020-07-17 22:11:16 -04:00
dk
ba89bf965a
removing lint errors from d2render (#598)
The edits outside of d2render or to fix the lint error for `DrawText`.
`DrawText` should be called `DrawTextf` because it formats the string.
2020-07-17 18:51:44 -04:00
dk
1654fd7e90
Removing lint errors in npc.go, mapstamp.go (#597)
- 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)
2020-07-17 18:51:19 -04:00
dk
cf6029eb95
Stat descriptions + tests, Skilldesc.txt loader (#590)
* adding ranged number type, for use in stats

* Loaded Skills.txt

* asset manager only binds terminal commands if terminal != nil

* WIP stats

* cache getter and clear methods were not implemented

* asset manager handles a nil terminal pointer

* adding skilldesc.txt loader (needs work)

* ctc stat descriptions functions working

* moving description functionality out of itemstatcost loader and into stats

* stats seem like a central part of diablo, moving into d2core.

* stats seem like a central part of diablo, moving into d2core.

* delint

* adding statlist, statlist reduction, unit tests

* minor edits to stat.go

* lint error in statlist.go

* Remove dependency on actual data from mpq files

stats unit tests now use mock data

* fixing some lint errors, formatting

Co-authored-by: Maxime Lavigne (malavv) <duguigne@gmail.com>
2020-07-17 18:50:45 -04:00
danhale-git
54ff33c552
Benchmark d2math (#595)
* Vector and tests reviewed.

* Tests and benchmarks for d2math.math.

Also docs/comments.
2020-07-17 18:50:07 -04:00