1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-22 22:13:35 +02:00
Commit Graph

632 Commits

Author SHA1 Message Date
Arseniy Shestakov
dbcd79c48a Code cleanup: remove double and unneded semicolons 2017-07-12 22:01:10 +03:00
Dydzio
182210421d Fix #2 for bug #2476 2017-07-11 14:04:43 +02:00
DJWarmonger
9623f7caf3 - Restored MSVS project files
- Fixed VCAI bu pointed out by Tow
2017-06-11 08:01:41 +02:00
Fay
65e88639a3 Minor: code format; 2017-06-08 21:07:09 +02:00
Fay
02fa478bfb Refactor: unified logic for notyfing CIntObjs about left/right mouse click events;
Added support for middle-click;
2017-06-07 20:16:18 +02:00
Arseniy Shestakov
3f7cb9f893 Client: add some shortcuts for spectator mode
Following mode only work when client is started in spectator mode:
F5 - Pause / resume game by locking of pim
F6 - Toggle spectate-ignore-hero
F7 - Toggle spectate-skip-battle
F8 - Toggle spectate-skip-battle-result
F9 - Skip current battle
2017-06-06 07:30:16 +03:00
Arseniy Shestakov
18161d3688 Client: implement spectator mode via command-line options
If running with --spectate/-s CPlayerInterface will appear even without human players.
Following command-line options also available:
 --spectate-ignore-hero
 --spectate-hero-speed=N
 --spectate-battle-speed=N
 --spectate-skip-battle
 --spectate-skip-battle-result
Boolean options can also be changed in runtime via client console:
 set spectate-ignore-hero on / off
Spectator mode also:
 - Work with --onlyAI option when starting game or loading saves.
 - Allow to use any cheat codes.
 - Give recon on towns and heroes.
2017-06-06 07:30:16 +03:00
dydzio
944edaf0bb Fix bug #2476 2017-03-27 23:47:26 +02:00
AlexVinS
8f7b0dac45 Fixed CID 1197332 2016-12-05 06:00:32 +03:00
AlexVinS
45ae1ef165 Fixed CID 1197342 2016-12-05 03:17:03 +03:00
AlexVinS
abe4beebc6 Fixed CID 1197516 2016-11-27 19:13:40 +03:00
AlexVinS
c4ab962cc0 Fixed a few CWE-457 2016-11-27 17:48:18 +03:00
AlexVinS
20de754141 def2bmp CLI command converted to CAnimation 2016-11-25 15:23:28 +03:00
AlexVinS
9e6bd48038 fix 2016-11-10 14:38:33 +03:00
AlexVinS
b248642468 fixes and cleanup 2016-11-09 09:32:44 +03:00
AlexVinS
a8a661b159 Map handler refactoring, part 2. 2016-11-08 00:19:53 +03:00
AlexVinS
aad675a7c4 Revert "Merge branch 'p254_4' into develop"
This reverts commit 37f68713a7, reversing
changes made to 4477b7c35d.
2016-11-08 00:17:20 +03:00
AlexVinS
4d510c172d Terrain drawing converted to CAnimation. 2016-11-07 23:48:30 +03:00
AlexVinS
6a272d8f0c FoW drawing converted to CAnimation 2016-11-06 05:27:45 +03:00
AlexVinS
c11a660d21 Fixed and cleanup 2016-11-06 05:27:44 +03:00
AlexVinS
186cd7a163 Mao object drawing converted to CAnimation 2016-11-06 05:27:26 +03:00
AlexVinS
ffeaef2bda fixes 2016-10-27 18:19:45 +03:00
AlexVinS
f32097339c Use CSDL_Ext blit for paletted sprites, use SDL blit otherwise.
*  No solution found to blit paletted images with alpha channel with SDL
2016-10-27 17:32:31 +03:00
AlexVinS
3dddbcf2e8 try to use CAnimation for Hero path 2016-10-27 16:34:15 +03:00
Vadim Markovtsev
4bcc43d3d0 Fix Mantis #2234
CPlayerInterface instances were removed from CClient::playerint with
clear() and finish() was not called on each. Added multiple insurance.
2016-10-22 16:22:00 +02:00
AlexVinS
3a52a3c663 Allow CAnimImage to share animation object. 2016-10-16 12:58:18 +03:00
AlexVinS
e6829bf271 Removed unused debug data in CAnimation. 2016-10-16 12:02:50 +03:00
AlexVinS
5506ae036a Reworked CHillFortWindow
* fixed displaying free upgrades
* do not try to print 3rd or more resource in slot cost (in theory possible with mods)
** we need dynamic gui for that
* CDefEssential--
2016-10-16 08:03:52 +03:00
AlexVinS
055c84bc7a cleanup 2016-10-16 04:23:38 +03:00
AlexVinS
153af6e07b cleanup 2016-10-16 02:47:03 +03:00
Arseniy Shestakov
10dbbead2d Fix indentation of logging code and around it
That wouldn't be as big issue if problem affected few files, but it everywhere in codebase.
Fixed it everywhere since in most files that is the only code with wrong indentation.
2016-03-12 04:46:21 +03:00
Zyx-2000
7fbd5479e2 alignment & makefile fix 2016-01-29 16:08:44 +01:00
Zyx-2000
3a1a8e3d47 further refactoring-related changes 2016-01-29 15:16:14 +01:00
Ivan Savenko
7b5a7f43ad Removed includes of CGameState from headers 2015-12-02 21:39:53 +02:00
ArseniyShestakov
fc06db4c4f Move STRONG_INLINE define into Global.h 2015-11-22 07:14:52 +03:00
Vadim Markovtsev
d24fd10e21 Fix std::abs warning
Recent clang wants std::abs instead of plain abs
2015-10-13 21:05:46 +03:00
Vadim Markovtsev
e4b1ef1405 Add "override" to virtual overriden methods 2015-10-13 21:05:36 +03:00
AlexVinS
28087099b8 More correct usage of SDL_Palette 2015-09-05 15:03:37 +03:00
AlexVinS
b512005d38 Get rid of CSDL_Ext::colorSetAlpha 2015-09-02 18:49:29 +03:00
Sandy Carter
6a3c2d3071 gui: Fix in parameter for scroll events
Refetch mouse position before checking if mouse is in widget Rect
Give acurate position of the mouse when scrolling
2015-08-22 12:40:14 -04:00
AlexVinS
371e4b8714 Fix mantiss 2235, 2237 2015-08-22 16:47:40 +03:00
AlexVinS
5f7a90237c More smooth fps counter 2015-06-23 01:08:25 +03:00
AlexVinS
32c15a8266 Extract fps counter drawing 2015-06-22 23:57:34 +03:00
AlexVinS
cc669b0ae7 Move gui locking to GUIHandler 2015-06-22 21:53:47 +03:00
AlexVinS
ed281a3cc6 SDL1 wipe, part 4. Codebase cleanup finished. Untested. 2015-06-21 01:59:32 +03:00
AlexVinS
8c236e30bb SDL1 wipe, part 3. Untested. 2015-06-21 01:59:32 +03:00
AlexVinS
b6a2323e01 SDL1 wipe, part 2. Untested. 2015-06-21 01:59:31 +03:00
AlexVinS
dca1e28bc1 SDL1 wipe, part 1. Untested. 2015-06-21 01:59:30 +03:00
DjWarmonger
6ac00873b9 Compilation fixes - allow SDL1.
Please do not define class-specific constants that are static at same time.
2015-02-18 15:31:55 +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
AlexVinS
c46999bcb8 Conurrency related tweaks. Crashes in renderFrame should be fixed, but synchronization is still not perfect 2015-02-15 04:53:01 +03:00
AlexVinS
b71d985d49 cleanup 2015-02-15 01:46:47 +03:00
Fay
5a7a208617 Minor fixes (possible surface leak); 2015-02-02 17:42:42 +01:00
Fay
5e78a3147a Abstracted fading into separate class;
Smoother fade animations;
Added fading when recentering hero after switching levels;
2015-01-30 23:37:28 +01:00
Fay
4b248c2762 World view impl -- initial; 2015-01-13 20:57:41 +01:00
Ilya Zhuravlev
b22973e717 Fixed crash, "pure virtual method called", when calling doUpdate lambda from CGPreGame. 2014-11-10 20:21:39 +03:00
Ivan Savenko
4092929b70 Fixed endianness 2014-08-11 16:21:23 +03:00
Ivan Savenko
1e5e02c7df Compilation fixes caused by merge, replaced some remaining boost::bind with std's 2014-08-09 15:14:31 +03:00
Ivan Savenko
b1285bc506 Merged GUI refactoring into develop, fixed conflicts 2014-08-09 15:01:55 +03:00
Ivan Savenko
4d6ab2c32d Fixed rendering of bitmap fonts shadow 2014-08-07 19:53:07 +03:00
beegee1
5139378319 - migrated boost::function/ref/bind to std:: variants 2014-08-04 20:33:59 +02:00
Ivan Savenko
10fc1892a8 Large refactoring of button classes:
- renamed CAdventureMapButton to more expectable CButton
- merged CButtonBase into CButton
- created more generic class for clickable elements
- created more generic class for selectable elements
- renamed CHighlightableButton to CToggleButton
- renamed CHighlightableButtonsGrous to CToggleGroup
- minimized differences between API of all these classes
- removed all but one contructors in buttons, with same parameters across all classes
2014-08-03 14:16:19 +03:00
Ivan Savenko
731aedf3a1 Split CIntObjectClasses into multiple smaller files. This should be the last change in files 2014-07-15 10:14:49 +03:00
Ivan Savenko
92d22bae63 Merge branch 'feature/creatureWindow' into refactoring/guiClasses 2014-07-14 17:23:24 +03:00
Ivan Savenko
647b9c683f Reorganized client source tree:
- client/widgets for reusable GUI elements
- client/windows for independent windows
- client/gui for base GUI classes which should remain internal
2014-07-13 20:53:37 +03:00
Ivan Savenko
cec9161f8f Added missing files 2014-07-13 18:40:13 +03:00
Ivan Savenko
83099fdb78 Moved all non-window GUI elements out from GUI classes file. TODO: reorganize source tree 2014-07-13 18:39:45 +03:00
Ivan Savenko
55ff933b7f Reducing size of GUI classes. Split trade windows into a separate file 2014-07-13 16:31:00 +03:00
Ivan Savenko
09bedf9aa9 Reducing size of GUIClasses. Moved Garrison Int into a separate file. 2014-07-13 16:11:25 +03:00
Ivan Savenko
7e76a5dd0e Moved some code from GUIClasses into two smaller files:
- CArtifactHolder.*
- CComponent.*

Goal: reorganize artifacts UI to decrease dependency on CGHeroInstance class
2014-07-13 14:56:30 +03:00
AlexVinS
0edd10078f Fix usage of fillRect.
* proper fix for slider drawing
2014-07-05 01:52:11 +04:00
Ivan Savenko
20f7071d11 Implemented stack experience/commander experience display for window 2014-07-04 12:48:09 +03:00
AlexVinS
74d3effa98 More safe way of update locking 2014-07-03 22:30:56 +04:00
Ivan Savenko
e4e9d71143 Fixed texts:
- added new texts to translate.json
- implemented texts for abilities

Remaining TODO's:
- handling of stack artifact
- handling of commander artifacts
- stack experience
2014-07-03 21:09:17 +03:00
AlexVinS
9b8ad51cd3 Run all rendering with pim lock if possible 2014-07-03 22:05:59 +04:00
AlexVinS
8a488aeb86 Cleanup 2014-07-03 19:57:21 +04:00
AlexVinS
57f82f2bed Add a comment. 2014-07-03 18:46:23 +04:00
AlexVinS
f3067878dd Force full redraw for sliders. This fixes backgroung glitches with SDL2.
(!) there should be better fix
2014-07-03 18:44:25 +04:00
AlexVinS
ecc7b8e05a Draw cursor on each frame. Fix TTF rendering under cursor. 2014-07-03 18:05:07 +04:00
AlexVinS
e521e6687a centralize cursor drawing 2014-07-03 15:10:01 +04:00
AlexVinS
c948891fc6 Fix threaded handlers initialization, cleanup 2014-07-03 12:26:15 +04:00
AlexVinS
3e4e810888 More ColorKey cleanup 2014-07-02 22:41:11 +04:00
Ivan Savenko
617ea79d3c Button overlays are now more generic (not necessarily text), removed old version of creature window 2014-07-02 21:38:38 +03:00
AlexVinS
638dac90af centralize key color management 2014-07-02 22:20:54 +04:00
AlexVinS
e57dbbde15 Extract startTextInput & stopTextInput
(*) these functions do nothing with SDL1 - this is by design - less ifdef`s
2014-07-02 19:41:30 +04:00
AlexVinS
9797372dbe Implement Unicode support for ingame console 2014-07-02 19:16:05 +04:00
AlexVinS
ac7703ffb0 Fix hero movement rendering 2014-06-21 12:13:19 +04:00
AlexVinS
5fa5ba622f Start preparation for moveHero threaded implementation 2014-06-18 14:31:11 +04:00
AlexVinS
c2dd696e96 simplify CGuiHandler::handleEvents()
Threre is no need to allow (and I doubt is was in fact possible with old code) new events to arrive during processing events. Let them to be processed in next frame.
2014-06-18 08:30:23 +04:00
AlexVinS
5fdc63ab5b tiny fixes 2014-06-16 14:32:37 +04:00
AlexVinS
c7390316b7 small cleanup 2014-06-13 07:55:50 +04:00
AlexVinS
41a0319985 remove separate GUI thread
+ this fixes OGL
- has some issues(f.e. hero movement)
2014-06-13 07:55:49 +04:00
AlexVinS
15fe37133c Fix compilation with SDL1
+ seems to be fully backward compatible (need more testing)
2014-06-13 07:55:48 +04:00
Ivan Savenko
8eb661461c - vcmi compiles with SDL2 on Linux, video player is disabled for now 2014-06-13 07:55:45 +04:00
AlexVinS
3db7fb4f63 Still try to fix opengl backend
- no success
+ make backend selection configurable
2014-06-13 07:55:45 +04:00
AlexVinS
d289c6a34a Prefere opengl rendering
- broken ...
2014-06-13 07:55:44 +04:00
AlexVinS
6474e37b76 try to fix hotkeys 2014-06-13 07:55:43 +04:00
AlexVinS
ac2896da42 Implemented SDL2 unicode input. Hotkeys are sill broken. 2014-06-13 07:55:42 +04:00
AlexVinS
0ef16feca9 Refactoring towards backward compatibility (WiP) 2014-06-13 07:55:41 +04:00
AlexVinS
6890c2650b fix keyboard state access
* is somewhat playable already!
2014-06-13 07:55:40 +04:00
AlexVinS
cd81e85a61 fix loading to pregame. Looks awful. More work to do.
* video temprorary disabled
* multithread loading seems to be broken - disabled
2014-06-13 07:55:39 +04:00
AlexVinS
62d42465de fix compilation
* may not even run
* text input disabled
2014-06-13 07:55:38 +04:00
AlexVinS
8a3b997fa5 fix a few comments. No code changes. 2014-05-21 13:02:20 +04:00
alexvins
4203d69525 Part 2 of new spell configuration
1) spell handler refactored to support modding in general way
2) imunnity icons moved to WoG as they depends on wog`s graphics
3) introduced new class template for handlers (todo: use this in other handlers)
4) save format changed
5) introduced "absolute immunity" - unaffected by "the Orb" etc. (todo: use it in config)
6) new format documented on wiki, added json schema.

* more split of registertypes - fixes 32 mingw build
2014-03-07 13:21:09 +00:00
Ivan Savenko
c5b74a2dce Miscellaneous fixes:
- proper block of "back" button in campaign menu.
- proper block of AI switch in battles
- vertical garrisons can now be attacked from top
- better UI logging, vcmi will print to log file all pressed buttons
- server will not try to build already existing building
2014-01-13 17:44:21 +00:00
Ivan Savenko
ee1b0459e6 Extended building dependencies:
- buiding/structure lists must use object format. This may break some
outdated mods.
- generic support for logical expressions that consist from and/or/not
operators.
- string ID's for buidings are now actually used.
2013-12-02 11:58:02 +00:00
beegee1
41e274b4aa - Moved FunctionList from /client to /lib -> used in client and server
- Updated project files
2013-11-30 10:08:38 +00:00
beegee1
c786a3076a - Refactored victory loss condition checks
- Added toString() method to EVictoryLossCheckResult enum class to improve debugging
- Removed mostly unused CFunctionList2
- Added missing header files for vcmiclient project to CMakeLists
- Tweaked SDL suggests bpp message a bit
- Added showInfoDialogAndWait (info dialog and waits, used from client thread) and showOkDialog (callback to ok click, used from GUI thread) to player interface
- Added showOkDialog method to CInfoWindow (unused for now, but may be used later)
2013-11-30 09:43:31 +00:00
Ivan Savenko
ee6cdbeffe went through the rest of cppcheck warnings, mostly harmless 2013-11-07 12:48:41 +00:00
Ivan Savenko
71d6b0fea9 - Fixed some warnings from cppcheck
- Minor improvements to JSON validation
- Cleanup in SDL_Extensions.cpp
- Implemented new propery for creature format: idle animation duration
- Disabled idle animation of some of conflux creatures (was clearly
broken)
2013-11-06 13:42:58 +00:00
Ivan Savenko
0e3eae3095 patch from KroArtem 2013-11-03 12:51:25 +00:00
Ivan Savenko
e2c037402c Unicode support.
- boost-locale library is now required (boost 1.48 or higher)
- Unicode namespace that contains UTF-8 handling
- All non-ASCII strings from H3 data will be converted to UTF-8 during loading
- All JSON files MUST use UTF-8. 
- H3 data encoding can be selected via launcher or directly in config file
2013-10-25 21:45:14 +00:00
Ivan Savenko
f6a3d6770f - chinese fonts now use fallback to H3 fonts for ASCII characters
- proper messages for not implemented main menu entries
- some cleanup of CMessage::breakText()
2013-10-20 21:53:27 +00:00
Ivan Savenko
eb6ff6b114 fixes #1482, add one pixel spacing for Chinese fonts 2013-09-25 21:15:15 +00:00
Ivan Savenko
208df34fc2 bigfixing & new file: launcher/jsonutils.cpp
- launcher uses json parser from vcmi lib instead of one from Qt #1469
- fixed abilities overrides for some creatures #1476
- fixed hero portraits in seer huts #1402
- ttf fonts will render text in utf-8 mode. Not really useful at this point
- new settings entry, available in launcher: encoding. Unused for now.
2013-09-21 18:29:26 +00:00
Ivan Savenko
6331995afd minors:
- fixes missing line of pixels with Chinese fonts
- disabling a mod won't disable all its requirements as well
2013-09-08 18:35:09 +00:00
Ivan Savenko
e13dc872e0 - support for Chinese fonts (GBK 2-byte encoding)
- fixes #1446
2013-09-08 16:49:23 +00:00
Ivan Savenko
42879225f0 minor fixes:
- don't crash if image can't be player-colored (no palette)
- fixes #1447
- compile fix
2013-09-08 13:02:34 +00:00
Ivan Savenko
708b0c6f47 - fixes #1424 - added missing override and CLabel::visibleText() 2013-09-01 17:34:46 +00:00
Ivan Savenko
7f43150bb9 - fixes #1423 - convert values to int before using 2013-08-31 00:21:29 +00:00
Ivan Savenko
83440f1149 A bit more text-related work:
- credits screen will use multi-line label instead of hackish usage of text box
- campaign intro movie player now plays voiced intro
- minor fixes to last commit
2013-08-29 16:41:14 +00:00
Ivan Savenko
6bee105d7d Some refactoring of text display widgets:
- renamed some methods/classes with better names + some consistency (no more print, setTxt and setText that do exactly same thing)
- TextBox now contains label widget instead of inheriting it
- smooth scrolling support (up/down buttons still scroll one line)
2013-08-29 13:46:27 +00:00
Ivan Savenko
45c2bd7511 hopefully fixes #1397. Still too much magic in this code :( 2013-08-09 17:37:41 +00:00
Ivan Savenko
b87897096c Filesystem handling is now more flexible
- removed CResourceLoader class in favor of one that implements resource loader interface
- removed global pool of files, in favour of more dynamic approach
- renamed some files to match current situation
All these changes are needed mostly for future mod manager + .zip support
2013-07-28 14:49:50 +00:00
Ivan Savenko
a719e03b30 - fixed #1375
- damage done by turrets is properly increased by built buldings
2013-07-22 16:23:23 +00:00
Michał W. Urbańczyk
516684aaab Visual 2012 compile fixes.
Unfortunately no C99 math nor uniform initialization till VS 2013.
2013-07-07 08:27:27 +00:00
Ivan Savenko
146a5e5ef8 Made speed of most of battle animations time-based
- speed of creature-related animation no longer depends on framerate
- most of values from cranim.txt are now used correctly
- removed BMPPalette struct in favor of SDL_Color
- animation group "DEAD" that is used to display dead stacks, by default consists from last frame of "DEATH" group

Notes:
- animation speed may still need some adjustments
- range of config property "battle/animationSpeed" has been changed. This may result in extremely fast animation. To fix - change animation speed via options.
2013-07-06 16:10:20 +00:00
Michał W. Urbańczyk
a1f545792b Compile fixes specific for VS 2012"
* Reverted std::bind to boost::bind. std::bind on Visual 2012 doesn't work in some cases (especially with std::ref), not sure why [but it seems to be a bug, since 2013 preview compiles the same code fine]. 
 * Move assignment operator for VS 2012.
2013-07-02 15:23:32 +00:00
Ivan Savenko
f82122d9be second part of c++11 update. gcc 4.5 and VS 2010 are no longer supported
- BOOST_FOREACH -> for
- replaced several boost classes with std (e.g. unordered)
- removed gcc-4.5 workarounds
- ran clang c++11 migration tool to detect some cases:
- - pointer initialized with "0" to nullptr
- - replace for with iterators with range-based for
- - use auto in some situations (type name specified twice, avoid long iterators type names)
2013-06-29 13:05:48 +00:00
Ivan Savenko
2b45e13c5c c++03 -> c++11 switch:
- use std versions of function, bind and ref
- OVERRIDE -> override
- NULL -> nullptr
- use std versions of random distributions

NOTE: this may be last revision that supports gcc-4.5
2013-06-26 11:18:27 +00:00
beegee1
c7c2686379 - Integrated the logging API into the client and the lib - Remove some more comments and switched to /// style - Fixed recursive locks - Added Global.h to CMakeLists(now visible in qt-creator) - Removed usage of shared_mutex - Added unique_ptr to CLogger targets 2013-04-09 14:31:36 +00:00
beegee1
30bcec42c6 - Renamed client/BattleInterface to client/battle and client/UIFramework to client/gui 2013-04-07 11:52:07 +00:00