1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-28 23:06:24 +02:00
Commit Graph

2433 Commits

Author SHA1 Message Date
ArseniyShestakov
17f3f94ca6 CGSubterraneanGate: fix pairing and always assign all gates to channel
Before gates on underground layer didn't had any channel assigned and of course any function that attempt to check -1 channel caused crash.
Also I find out that at point postInit executed It's possible to get mutable gamestate via gameState() callback so we don't need to pass it there.
2015-03-11 17:17:21 +03:00
AlexVinS
53af95f0a6 Few spell tweaks 2015-03-10 23:45:09 +03:00
AlexVinS
1fd4a6daae Fix merge of SpellsRefactoring5 2015-03-10 23:23:28 +03:00
DjWarmonger
719fcef34e Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2015-03-10 19:57:35 +01:00
DjWarmonger
b5c270082b Added missing files. 2015-03-10 18:32:05 +01:00
ArseniyShestakov
2145be281a Merge pull request #86 from ArseniyShestakov/fixQuestSaving
Fix saving of player's quests and bump save format version
2015-03-10 18:01:38 +03:00
DjWarmonger
ec879046ca Merge pull request #93 from ArseniyShestakov/feature/pathfindingTeleports
Okay let's do this!
2015-03-10 09:04:25 +01:00
DjWarmonger
f7b5ecf642 Something that compiles. 2015-03-09 20:07:28 +01:00
DjWarmonger
f32849a73e Attempt to compile refactored spells in MSVS. 2015-03-09 19:24:45 +01:00
ArseniyShestakov
1801b5eaf4 CGTeleport: use vstd::erase_if_present in getAll functions 2015-03-09 15:44:48 +03:00
ArseniyShestakov
5c6633f8ad CPathfinder::addTeleportWhirlpool: check that obj isn't nullptr 2015-03-09 15:32:09 +03:00
ArseniyShestakov
00b0af7306 CGameInfoCallback: now actually drop excludeId argument 2015-03-09 14:20:34 +03:00
ArseniyShestakov
861104f493 CGameInfoCallback: refactoring of getTeleportChannelEntraces / getTeleportChannelExits
Move shared filtering code into getVisibleTeleportObjects.
Also remove excludeId as it's not currently used.
2015-03-09 05:10:31 +03:00
ArseniyShestakov
930a8b49da CPathfinder: move complicated check into lambda 2015-03-09 04:24:12 +03:00
ArseniyShestakov
8f8d237d5d Use isTeleportChannel callback functions to check teleport channel type 2015-03-09 02:13:40 +03:00
ArseniyShestakov
0c1a37e5a7 CGameInfoCallback: more functions to check teleport channel types 2015-03-09 02:01:24 +03:00
ArseniyShestakov
eff4da1d03 ETeleportChannelType: is now strongly typed enumeration 2015-03-09 01:45:39 +03:00
ArseniyShestakov
3b057e0408 CGMonolith: fix switch formatting 2015-03-09 01:27:40 +03:00
ArseniyShestakov
606013c535 CGSubterraneanGate::postInit put const back
Originally I removed it when change this code to actually change object.
Though this sorting can work with constant object just fine.
2015-03-08 21:16:30 +03:00
ArseniyShestakov
826a64b579 Pack of tiny code improvements for @alexvins request 2015-03-08 20:19:00 +03:00
ArseniyShestakov
6d77322d6a CGMonolith: add text dialog when player visit one-way monolith exit 2015-03-08 18:07:06 +03:00
ArseniyShestakov
530b63f7c4 CPathfinder: add all new code for pathfinding via teleporters
Each kind of teleporter have own function that determine if it's should or shouldn't be used.
For now Monolith with bidirectional channels and Subterranean Gate are united.
2015-03-08 17:13:26 +03:00
ArseniyShestakov
21aaad6972 MoveHero: add transit movement option
Transit is new option for hero movement. If it passed for movement then hero can get get on tile without visiting of object on it.
Currently it's will be only allowed is object under destination is teleport.
2015-03-08 17:04:09 +03:00
ArseniyShestakov
25656aa586 Add showTeleportDialog everywhere except actual code for AI and player
Just like TeleportDialog it's based off showBlockingDialog, but as number of package is higher when possible showTeleportDialog will be after other dialogs handling code.
2015-03-08 16:52:50 +03:00
ArseniyShestakov
18535db0ef Add TeleportDialog and CTeleportDialogQuery
TeleportDialog is based off BlockingDialog and it's needed for server to ask client what teleport hero should be teleported to.
It's also contain list of possible exits, identifier of currently used channel and also impassable option.
If impassable set to true then client will remember that current teleport channel is lack of exit point.
2015-03-08 16:37:33 +03:00
ArseniyShestakov
8d7b6d119f CGameInfoCallback: add functions that gather information about teleport channels
This code belongs to callback because both player and AI shouldn't directly access information about teleport channels.
For example pathfinder code need to check teleport channel type only based on information about objects player already seen.
2015-03-08 16:21:14 +03:00
ArseniyShestakov
c9eba40fe6 Updated CGTeleport and new CGMonolith / CGSubterraneanGate / CGWhirlpool
Now CGTeleport is not publicly available handler, but generic class for teleport channels usage.
Teleport channels are stored as part of information about the map.
2015-03-08 16:11:23 +03:00
ArseniyShestakov
04a1df29ad Add TeleportChannel / TeleportChannelID / ETeleportChannelType
TeleportChannel is structure that contain two vectors of entrances and exits for certain teleport channel. It's also store passability state independently which almost only useful for Player and AI as they can't know if channel passible or not until enough entrances / exits are visible or server passed them information that certain channel is impassible when they visited entrance.

ETeleportChannelType is determined by checking intersection between entrances and exit vectors or checking their size:
 - IMPASSABLE: one of vectors empty or only one entrance id is same as only one exit id.
 - BIDIRECTIONAL: contents of both vectors is exactly the same.
 - UNIDIRECTIONAL: contents of both vectors do not intersect.
 - MIXED: contents of vectors only partially intersect. Not currently used; added for future modding.
2015-03-08 15:18:53 +03:00
ArseniyShestakov
f145c82031 TerrainTile: implement exclusion for topVisitable functions
For pathfinder we usually want to check what object hero staying on.
Hero is always top object so we need option to exclude it.
2015-03-08 15:05:24 +03:00
DjWarmonger
6ace53d8b9 Functional RMG Seer Huts, still there are some mysterious bugs. 2015-03-01 13:26:54 +01:00
DjWarmonger
9453250e0f Spawn quest arts in nearby zones. 2015-03-01 10:20:49 +01:00
DjWarmonger
67ab90616d Seer Huts with exp / gold rewards. 2015-03-01 09:46:09 +01:00
DjWarmonger
dd887eb929 Fixes for Seer Huts. 2015-03-01 09:07:43 +01:00
DjWarmonger
4f1d96e5e8 Seer Huts part 2. 2015-02-28 22:37:04 +01:00
DjWarmonger
607375a9bc Generate Seer Huts with creature rewards 2015-02-28 21:14:45 +01:00
AlexVinS
5fda2aac9a formatting 2015-02-26 20:59:18 +03:00
AlexVinS
f4c683cd5e Move VievXXX logic to server side (except expert ViewEarth) 2015-02-26 17:15:17 +03:00
AlexVinS
b6038240ab Implemented DISGUISE spell. Untested 2015-02-26 08:39:59 +03:00
AlexVinS
025a00362b Simplify CBattleInterface::spellCast 2015-02-26 08:39:58 +03:00
AlexVinS
b9bdc95a7e Handle monster agressivness for VISIONS spell 2015-02-26 08:39:57 +03:00
AlexVinS
b846b717a1 implemented VISIONS spell (partially)
(-) todo: agressivnes
2015-02-26 08:39:56 +03:00
AlexVinS
2156204306 Visions spell in case of monsters 2015-02-26 08:39:55 +03:00
AlexVinS
36cdb2968b Refactoring 2015-02-26 08:39:54 +03:00
AlexVinS
666d7a4f45 Start implementing VISIONS and DISGUISE 2015-02-26 08:39:53 +03:00
AlexVinS
f6e83685e7 Initial implementation of VIEW_AIR & VIEW_EARTH 2015-02-26 08:39:52 +03:00
AlexVinS
1333f8e410 Split mechanics implementation 2015-02-26 08:39:51 +03:00
AlexVinS
ce19c76324 Added draft of new file structure 2015-02-26 08:39:50 +03:00
AlexVinS
685deddac1 Start spell-relatet files reorganisation
* moved existing files to separate directory
-> todo: split mechanics
2015-02-26 08:39:48 +03:00
AlexVinS
c7c235c0ca Rename afterCast to applyBattle
* afterXXX will be used in future event-driven mechanics
2015-02-26 08:39:47 +03:00
AlexVinS
a3f2667376 Remove some deprecated fields from CSpell
* now only new SpellScholl API is used
(!) untested
2015-02-26 08:39:43 +03:00
AlexVinS
550df6360e cleanup 2015-02-26 08:39:42 +03:00
AlexVinS
b3d8e2e783 Move calculateHealedHP to mechanics 2015-02-26 08:39:41 +03:00
AlexVinS
77b4774a29 fix 2015-02-26 08:39:40 +03:00
AlexVinS
08d4f7991e Extract adventure spell mechanics 2015-02-26 08:39:39 +03:00
DjWarmonger
c5e772eb78 Fixed issue which created large empty areas on two-level maps. 2015-02-25 19:34:02 +01:00
DjWarmonger
ef4e199f15 Implemented "Quantity does not grow" for monsters (#2094) 2015-02-22 20:54:09 +01:00
DjWarmonger
2a082e6c21 Merge pull request #84 from Fayth/test/advMapFading
If no one objects, I will try to merge this.
2015-02-18 09:52:09 +01:00
DjWarmonger
200bcd7da6 Merge pull request #88 from ArseniyShestakov/improvedQuestLog
Awesome, thanks!
2015-02-17 06:44:38 +01:00
ArseniyShestakov
43f1e37546 Quest Log: fix text for quests with minimal level requirement
This is needed because m13478val is ui32 while translation expect %s string.
2015-02-16 00:53:44 +03:00
ArseniyShestakov
789da96a81 Stables: give 400 movement points bonus instead of 600
Tested it and now VCMI work exactly as original game.
This one fix issues 2077 / 2082
2015-02-15 07:55:59 +03:00
AlexVinS
aa5e9fc959 get rid of global debug macros. 2015-02-14 22:43:16 +03:00
ArseniyShestakov
746914d219 Added missionType check to CQuest::getRolloverText
This function shouldn't be called if quest type is MISSION_NONE as this type used for quest that don't have text yet.
For example Keymaster`s border guards in H3 didn't add any entries to Quest Log so there is no text for them or at least it's not defined how to use it in VCMI.
2015-02-14 00:57:33 +03:00
ArseniyShestakov
7c5af02b78 Fix saving of player's quests
This commit break saves compatibility
2015-02-12 13:19:22 +03:00
AlexVinS
ac3e48f4b9 Move JsonNode operator<< to right plase 2015-02-10 14:43:26 +03:00
Fay
aaec94ea87 Changed fading to be enabled by default (when entries are not present in config); 2015-02-09 20:41:03 +01:00
Fay
cbd3a19987 Merge branch 'develop' of https://github.com/vcmi/vcmi into test/advMapFading
Conflicts:
	client/CPlayerInterface.cpp
2015-02-09 16:09:27 +01:00
ArseniyShestakov
1396476869 Merge pull request #79 from ArseniyShestakov/fixIssue1557
Only remove extension if it belongs to specified file type
2015-02-07 18:17:22 +03:00
ArseniyShestakov
4eed1716d5 Fix tiny memory leak on opening/closing new game window
Find this one when tested huge pack of 5000+ maps. Each time I opened/closed Single Scenario window memory usage was growing for ~1MB.
It's happen because inflateEnd is freed related structures, but not freed inflateState that created outside of zlib code.
2015-02-07 17:30:57 +03:00
AlexVinS
91cc6a04eb possible fix for mantiss 2055 2015-02-07 00:06:24 +03:00
ArseniyShestakov
8f08effe93 Check that resource type set before setName used 2015-02-06 10:51:32 +03:00
Fay
3c3fb0e21d Added advmap config options to enable/disable fading; 2015-02-02 19:38:30 +01:00
AlexVinS
594295da32 Merge branch 'feature/worldView' into develop 2015-02-01 20:49:14 +03:00
ArseniyShestakov
19d1de3142 Only remove extension if it belongs to specified file type
This one fixes issue 1557
Now it's possible to load maps with dots in filename.
2015-01-26 16:40:49 +03:00
DjWarmonger
0acae7a708 Additional adjustment of zone positions to ensure balanced zone sizes. 2015-01-16 19:28:27 +01:00
DjWarmonger
ba604f4e43 Implemented "junction" zone type. 2015-01-16 17:39:16 +01:00
DjWarmonger
b7386250e9 Fixed fractalized paths inside zones. 2015-01-16 09:40:11 +01:00
DjWarmonger
fe180335de Important fix that prevents treasures from sealing off, adding too many blocked tiles. 2015-01-15 11:21:29 +01:00
Fay
4b248c2762 World view impl -- initial; 2015-01-13 20:57:41 +01:00
DjWarmonger
9f05f53e65 Corrected monster agressiveness #2034 2015-01-10 10:23:58 +01:00
DjWarmonger
c22c3cdd80 Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2015-01-08 07:15:26 +01:00
AlexVinS
8deee7610c CMapGenerator.cpp: remove unused variables 2015-01-03 01:04:42 +03:00
DjWarmonger
7055357996 Fixed spell scroll generation #2024 2015-01-02 23:01:14 +01:00
DjWarmonger
8e99e803c1 Post-release version bump. 2014-12-27 10:34:16 +01:00
DjWarmonger
850350e402 Savegame bump. To be released as 0.97b. 2014-12-27 09:48:16 +01:00
DjWarmonger
fdd392e47c Add some space around unguarded treasures. 2014-12-26 21:13:13 +01:00
DjWarmonger
53c39f7d05 Treasure density and quality now matches OH3. 2014-12-26 19:35:45 +01:00
DjWarmonger
f5f0f61076 Density does not depend on zone size. 2014-12-26 17:13:41 +01:00
DjWarmonger
5fbd856a4c New rule for placement of unguarded treasures 2014-12-26 16:17:39 +01:00
DjWarmonger
121c39a994 Fixed Jebus and CoD templates. 2014-12-26 15:14:22 +01:00
DjWarmonger
4a41d138cc Update Visual projects. 2014-12-26 09:56:11 +01:00
DjWarmonger
84b2510aa4 Merge pull request #62 from vcmi/SpellsRefactoring4
OK
2014-12-26 08:46:29 +01:00
DjWarmonger
8c471f6359 Merge pull request #69 from ArseniyShestakov/artifactsImprovements
Thanks, looks great now.
2014-12-25 20:24:08 +01:00
DjWarmonger
5271ca156b Merge pull request #70 from vcmi/StackSplitting
Stack splitting
2014-12-25 19:59:02 +01:00
ArseniyShestakov
04d15174e7 Use switch for CArtHandler::isTradableArtifact 2014-12-25 17:18:37 +03:00
DjWarmonger
0d2879158b Merge pull request #67 from ArseniyShestakov/fixIssue1912
Okay, let's do this.
2014-12-25 14:23:26 +01:00
DjWarmonger
5b8180e327 Cleaning logs. 2014-12-25 12:58:15 +01:00
DjWarmonger
51495381ef Better obstacle shapes inside zones. 2014-12-25 10:24:48 +01:00
DjWarmonger
e46f03fabe Upgrades, stack splitting. Results now are identical to OH3. 2014-12-25 10:21:39 +01:00
DjWarmonger
3c39ef477f Implemented original stack splitting algorithms proposed by AlexSpl. Save format changed. 2014-12-24 23:53:56 +01:00
ArseniyShestakov
de6752c048 Implement CArtHandler::isBigArtifact and CArtifact::isTradable 2014-12-24 20:43:35 +03:00
ArseniyShestakov
937ef0227b Use ArtifactID instead of int when possible 2014-12-24 18:49:12 +03:00
DjWarmonger
6f7bda65b4 Better obstacle shapes inside zones. 2014-12-24 15:07:20 +01:00
DjWarmonger
b208ebbee9 Increase treasure density to match OH3. 2014-12-24 14:01:05 +01:00
AlexVinS
eebf65e88f Merge branch 'develop' into SpellsRefactoring4 2014-12-24 00:15:27 +03:00
DjWarmonger
75d407b59a Last improvements - zones on simpler maps should not be smashed. 2014-12-23 18:16:53 +01:00
DjWarmonger
53b3ea8d97 Final update for zone placer. 2014-12-23 14:26:14 +01:00
DjWarmonger
0dbfee0edb Final shape of algorithm 2014-12-23 13:49:07 +01:00
DjWarmonger
990e38e961 Fixes for placement. 2014-12-23 12:42:59 +01:00
DjWarmonger
868d2f61ee New zone placement algorithm 2014-12-23 11:39:41 +01:00
DjWarmonger
0e34775770 Important fix. 2014-12-23 10:42:01 +01:00
DjWarmonger
875bfb025e Better fitness function(s) 2014-12-22 23:35:19 +01:00
DjWarmonger
b52eeb2263 Remember "best" placement at right moment. 2014-12-22 21:47:19 +01:00
DjWarmonger
067b56dda4 Zone placer will remember the best solution, not the last generated. 2014-12-22 21:33:37 +01:00
DjWarmonger
94c0d5896f [MVS] Added /LTCG option to improve linker performance. 2014-12-22 19:44:15 +01:00
DjWarmonger
7735e193f0 Merge branch 'develop' into experimental/serializerrefactoring 2014-12-22 19:17:40 +01:00
ArseniyShestakov
5d59bbc0d4 Fix CGBonusingObject serialization
Now state of adventure map objects that use this handler will be saved properly and they'll work as indended after save loaded. Affect following objects: Buoy, Swan Pond, Faerie Ring, etc.
2014-12-22 11:56:53 +03:00
AlexVinS
74161198c4 More refactoring 2014-12-21 21:47:02 +03:00
AlexVinS
b86938de5e More rafactoring 2014-12-21 18:22:12 +03:00
AlexVinS
c57b2403e1 Refactor metaprogramming-helper structs 2014-12-21 17:53:51 +03:00
AlexVinS
3bca68fd2d Initial refactoring
* reduce registerTypes* templtates instantiation
2014-12-21 17:29:42 +03:00
DjWarmonger
c538370c5d Players will be always able to see their owned heroes and other objects. Fixes #1959. 2014-12-21 13:56:32 +01:00
DjWarmonger
fee2184996 Wood & ore mines will be placed close to zone center. 2014-12-20 22:13:10 +01:00
DjWarmonger
485b2ac688 Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2014-12-20 15:17:22 +01:00
DjWarmonger
50dc22fa1b Tuned density. 2014-12-20 14:52:01 +01:00
DjWarmonger
3886a19771 More balanced treasure pile distribution. 2014-12-20 14:01:48 +01:00
DjWarmonger
a3a42ae144 Merge branch 'develop' of https://github.com/vcmi/vcmi into fuzzyFix 2014-12-19 14:21:44 +01:00
DjWarmonger
6fc873dcd5 Merge branch 'develop' of https://github.com/vcmi/vcmi into develop 2014-12-19 14:14:18 +01:00
DjWarmonger
cb5a3c0f73 Fixed shortage of Prisons on random maps. 2014-12-19 14:04:59 +01:00
DjWarmonger
a1e42caddd Banks won't use fuzzy engine at all, only center of mass. 2014-12-10 12:29:51 +01:00
ArseniyShestakov
6391f0f85a Fix crash on Cartographer if there is no underground level
Show "already visited" text for stalagmite cartographer if map don't have underground level.
This one fixes bug #1985
2014-12-09 14:01:32 +03:00
AlexVinS
64dccfec80 Rewrite Beneficial spell selection 2014-12-02 00:24:36 +03:00
AlexVinS
b0df8172f9 Move battleIsImmune to CSpell 2014-11-29 04:25:51 +03:00
AlexVinS
e8aeb0bf8e Merge branch 'develop' into SpellsRefactoring4 2014-11-28 22:44:33 +03:00
AlexVinS
499a281dfe Disallow rising spells for genie 2014-11-28 21:08:34 +03:00
AlexVinS
e583f4e44d Fix #1928
* disallow geneie to cast teleport
2014-11-28 20:39:23 +03:00
AlexVinS
8f84e24aa6 Get rid of mainEffectAnim 2014-11-28 01:03:25 +03:00
AlexVinS
d94f15bdf4 Added configurable animation for SPELL_LIKE_ATTACK 2014-11-28 00:36:14 +03:00
AlexVinS
657385e32c We need to know caster stack ID for proper projectile animation 2014-11-27 20:47:37 +03:00
AlexVinS
6893509f65 Fix manaGain animation always showing 2014-11-27 19:09:59 +03:00
AlexVinS
f1ab328a09 Cleanup 2014-11-27 17:08:19 +03:00
AlexVinS
75b93b070d Implemented configurable hit/affect animation
* need more testing
2014-11-27 16:51:16 +03:00
AlexVinS
f4cf12d3f8 Fix a crash 2014-11-27 00:53:08 +03:00
AlexVinS
256894d18a Use configuration for spell projectile 2014-11-27 00:27:38 +03:00
AlexVinS
242aa72796 Implemented loading of new spell configuration parameters 2014-11-26 22:39:27 +03:00
AlexVinS
16d08b062a First draft of spell animation configuration 2014-11-26 22:25:13 +03:00
AlexVinS
b31ed0e4ea Use SetMana packet in battle 2014-11-26 13:30:55 +03:00
AlexVinS
fe1233310f Centralize dispell mechanics 2014-11-25 23:59:21 +03:00
AlexVinS
756c19227b update VS project. untested. 2014-11-25 22:47:28 +03:00
AlexVinS
ca5391cde6 Get rid of handleSpellCasting 2014-11-25 22:00:04 +03:00
AlexVinS
2a75c432e0 Remove 2 unused methods 2014-11-25 19:45:50 +03:00