Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(See the other PRs first!) This is the merge of all my other PRs + some fixes and adjustments. #587

Open
wants to merge 278 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
278 commits
Select commit Hold shift + click to select a range
e9ef42d
Merge pull request #46 from Attnam/master
AquariusPower Jan 9, 2019
720ec65
Merge pull request #48 from Attnam/master
AquariusPower Jan 21, 2019
57200e5
Merge pull request #49 from Attnam/master
AquariusPower Feb 6, 2019
23fc962
Merge branch 'master' of https://github.com/Attnam/ivan into Attnam-m…
AquariusPower Feb 29, 2020
b0d4377
Developer console seems broken.
AquariusPower Mar 1, 2020
c274916
WIP: fixing developer console to prefer festring everywhere possible;
AquariusPower Mar 1, 2020
412e70f
Merge pull request #64 from Attnam/master
AquariusPower Mar 16, 2020
aa596fb
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
4aa7de8
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
65130a9
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
be1ef93
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
669fe6c
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
e98ac4e
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
f2eacdc
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
020b2c5
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
52d091c
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
82fe321
WIP-craft: added crafting skill, using existing weapon skill advancem…
AquariusPower Mar 17, 2020
1cc45ba
updated definesvalidator.h
AquariusPower Mar 17, 2020
b7eeff4
WIP-lights: changing light emitation of cut raw things (stone,stick,l…
AquariusPower Mar 18, 2020
a4231dd
WIP-lights: changing light emitation of small things based on main ma…
AquariusPower Mar 18, 2020
35b51af
WIP-lights: changing light emitation of small things based on main ma…
AquariusPower Mar 18, 2020
fed2c66
lights: changing light emitation of small things based on main materi…
AquariusPower Mar 18, 2020
e2fa03f
lights: changing light emitation of fluids based on it's material vol…
AquariusPower Mar 18, 2020
5bcc860
lights: changing light emitation of fluids based on it's material vol…
AquariusPower Mar 18, 2020
e3582ea
sfx: 3 new web tear down sounds;
AquariusPower Mar 18, 2020
822be84
WIP-lights: trying to fix a bug when splitting a crystal stone: 1st -…
AquariusPower Mar 21, 2020
3b43d0c
Lights: added experimental (still buggy after split command) optional…
AquariusPower Mar 21, 2020
9dec26c
WIP-Lights: lower light emitation from small crystals (less buggy now);
AquariusPower Mar 22, 2020
91e0f27
WIP-Lights: lower light emitation from small crystals (making sure Ca…
AquariusPower Mar 23, 2020
c931664
Lights: lower light emitation from small crystals, looks good now, ju…
AquariusPower Mar 23, 2020
2a3f7d1
minor fix: add explicit braces to avoid dangling else
AquariusPower Mar 24, 2020
571fcda
minor fix: add explicit braces to avoid dangling else
AquariusPower Mar 24, 2020
7177719
WIP-CustomMoveKeys;
AquariusPower Mar 27, 2020
bc145aa
WIP-CustomMoveKeys: now needs test file;
AquariusPower Mar 27, 2020
fe5c6c1
WIP-CustomMoveKeys: needs testing now;
AquariusPower Mar 27, 2020
d6081c4
WIP-CustomMoveKeys: needs fixing;
AquariusPower Mar 27, 2020
311e298
WIP-CustomMoveKeys: needs fixing;
AquariusPower Mar 27, 2020
67b6b22
WIP-CustomMoveKeys: needs fixing;
AquariusPower Mar 27, 2020
7c70bbc
WIP-CustomMoveKeys: needs fixing;
AquariusPower Mar 27, 2020
b342dc5
WIP-CustomMoveKeys: needs fixing;
AquariusPower Mar 27, 2020
84ad145
WIP-CustomMoveKeys: understood and fixing...;
AquariusPower Mar 27, 2020
55f6f6b
WIP-CustomMoveKeys: fixing and improving;
AquariusPower Mar 27, 2020
6b0439e
WIP-CustomMoveKeys: fixing and improving;
AquariusPower Mar 27, 2020
5b4dd80
WIP-CustomMoveKeys: fixing and improving;
AquariusPower Mar 27, 2020
cdb1277
CustomMoveKeys: final test worked fine. Obs.: such keys are required …
AquariusPower Mar 27, 2020
1701525
DirectionKeyMap: restored max of 3 cycle options.
AquariusPower Mar 27, 2020
45569bd
WIP-itemInfo: now shops will show full item info on look mode;
AquariusPower Mar 27, 2020
5db90e1
ListNavigation: UpArrow and DownArrow will always work to navigate on…
AquariusPower Mar 28, 2020
545cdfc
Every command key can now be customized thru CustomCommandKeys.cfg.
AquariusPower Mar 28, 2020
4279501
fix: using the result of an assignment as a condition without parenth…
AquariusPower Mar 29, 2020
bc466c1
WIP-GodFavours: not working yet;
AquariusPower Mar 29, 2020
382e5ff
WIP-GodFavours: sophos may grant teleport now;
AquariusPower Mar 29, 2020
ba16707
SAVE_FILE_VERSION=135 to save known spells;
AquariusPower Mar 29, 2020
97bb137
WIP-GodFavours: improving;
AquariusPower Mar 29, 2020
d1e4eba
WIP-GodFavours: more favours added;
AquariusPower Mar 29, 2020
2cfd08d
WIP-GodFavours: broken, but fixing travisci warnings first;
AquariusPower Mar 29, 2020
4be0bfc
WIP-GodFavours: working;
AquariusPower Mar 29, 2020
2ee66fb
WIP-GodFavours: improving;
AquariusPower Mar 29, 2020
cf65b4a
WIP-GodFavours: improving;
AquariusPower Mar 29, 2020
16dd209
WIP-GodFavours: improving code;
AquariusPower Mar 29, 2020
2f40504
WIP-GodFavours: added for valpurus and legifer. Cleaned dead messy ma…
AquariusPower Mar 30, 2020
db20637
WIP-GodFavours: added dulcis;
AquariusPower Mar 30, 2020
f7a2acc
WIP-GodFavours: added seges;
AquariusPower Mar 30, 2020
ca6d4ca
WIP-GodFavours: improving;
AquariusPower Mar 30, 2020
95fd473
WIP-GodFavours: fix favour learning;
AquariusPower Mar 30, 2020
d659b98
WIP-GodFavours: restored normal praying (was broken);
AquariusPower Mar 30, 2020
a9b5bbb
WIP-GodFavours:
AquariusPower Mar 31, 2020
a86fee8
WIP-GodFavours: adjustment to compensate neutral favours access vs ot…
AquariusPower Mar 31, 2020
80242ee
WIP-GodFavours: added atavus, cleptia, mortifer, mellis, nefas, scabies;
AquariusPower Mar 31, 2020
7cfb2b7
WIP-GodFavours: being in holy ground (of one god), will provide acces…
AquariusPower Mar 31, 2020
889a4bf
WIP-GodFavours: fixed - favours are now saved as an integer ID, no pr…
AquariusPower Apr 1, 2020
0baef44
crafting: added basic/simple tailoring.
AquariusPower Apr 1, 2020
bebc411
crafting: added a bit of spider silk as sewing thread requirement;
AquariusPower Apr 1, 2020
ff0a747
crafting: cloaks now have to be tailored (no more wooden cloaks :P);
AquariusPower Apr 1, 2020
3719979
DropBeforeOffering new option;
AquariusPower Apr 2, 2020
c3f6f41
WIP-Favours: added infuscor;
AquariusPower Apr 2, 2020
5de6935
WIP-Favours: added cruentus;
AquariusPower Apr 2, 2020
fdb24d6
WIP-GodFavours: asking favours was too safe... not anymore!;
AquariusPower Apr 2, 2020
2948826
WIP-GodFavours: asking favours is now less safe;
AquariusPower Apr 4, 2020
839a0a8
fixed 2 LGTM alerts
AquariusPower Apr 4, 2020
c68dca9
Tailoring: fixed restrictions;
AquariusPower Apr 4, 2020
3d9c00d
GodFavours: MANA and WISDOM now lowers favour price, increased the mi…
AquariusPower Apr 4, 2020
6bd03a8
Crafting: new tailor bench gfx and OLTerra.
AquariusPower Apr 5, 2020
5d74678
Fixed a crash that happens when the minimap is drawn too near
AquariusPower Apr 5, 2020
0cda3cf
Created independent SFX volume config option as the
AquariusPower Apr 5, 2020
30eded7
WIP-fix MIDI transition (initial tests are ok): some music transition…
AquariusPower Apr 5, 2020
3c60231
Favours: optional show relation on favours list too;
AquariusPower Apr 5, 2020
f6a587b
Favours list looks better now (icons and god sections);
AquariusPower Apr 5, 2020
e9e8f6b
Favours: hides unknown gods;
AquariusPower Apr 5, 2020
d637c02
rework DEVCMDMSG to cope with LGTM;
AquariusPower Apr 5, 2020
ed7f7ab
WizAutoPlay: Improving AI;
AquariusPower Apr 6, 2020
04a0d93
CPUwiseAI() improvements:
AquariusPower Apr 6, 2020
730c6ee
God's earth quake magic and related scroll magic were a copy/paste code,
AquariusPower Apr 6, 2020
81e3b22
Improved user help about customising every movement and command keys.
AquariusPower Apr 6, 2020
a11b084
WizAutoPlay: improved, a chance to learn about all gods if none is kn…
AquariusPower Apr 6, 2020
f6f0b07
CPUwiseAI() a dungeon filled with normal mushroom* breeders will also…
AquariusPower Apr 6, 2020
2f3c31e
unified all(?) earthquake copied codes
AquariusPower Apr 6, 2020
f9fe073
WizAutoPlay: improved eating to play faster;
AquariusPower Apr 6, 2020
197bc79
Offer auto drop (if on) will add dropped tag (that prevents auto pick…
AquariusPower Apr 8, 2020
efd1bb5
Fixed a crash when tearing a web down from an NPC.
AquariusPower Apr 8, 2020
c850ca9
When generating a new level,
AquariusPower Apr 10, 2020
1403a92
undefinedConfigurationSoughtException: reorganized related code to av…
AquariusPower Apr 10, 2020
ed044c6
Documented at --help command line option, all useful environment vari…
AquariusPower Apr 10, 2020
af5f9f0
Added autoplay defines to clarify usages;
AquariusPower Apr 10, 2020
8361a38
Properly using dbgmsgproj.h;
AquariusPower Apr 10, 2020
055c4cc
new env vars:
AquariusPower Apr 10, 2020
d25f507
fix for IVAN_DebugStayOnDungeonLevel with dbgmsg enabled;
AquariusPower Apr 11, 2020
6e0183a
Fixed a crash where an earthquake could destroy an alchemy wand dropp…
AquariusPower Apr 11, 2020
f487229
character::TrapData consistency validation applied/revised/reworked
AquariusPower Apr 11, 2020
507006c
AutoPlay: make it use items more often and added Apply capability;
AquariusPower Apr 11, 2020
a323ebb
All keys can be easily customized in-game now.
AquariusPower Apr 14, 2020
ef99086
fix to show key layout "properly" again.
AquariusPower Apr 14, 2020
8811d39
AutoPlay: fix dropping stethoscope;
AquariusPower Apr 14, 2020
456888d
CustomKeys:
AquariusPower Apr 15, 2020
9b58534
Favours are cheaper in case enough time has passed,
AquariusPower Apr 15, 2020
a2cc59b
Favours will reset last pray time too now,
AquariusPower Apr 15, 2020
1f97663
Workaround for a rare crash where mother entity is nowhere (catch on …
AquariusPower Apr 15, 2020
cd6dc7b
Workaround (again) for a rare crash where character is nowhere
AquariusPower Apr 15, 2020
9b45b01
Added _BUG_TRACK_ tag and stacktrace to some debug messages;
AquariusPower Apr 15, 2020
68aeb84
Skip sfx playing if sfx sound volume is muted (zero) (catch on autopl…
AquariusPower Apr 15, 2020
510e8ce
WIP-DeveloperConsole: improving;
AquariusPower Apr 15, 2020
3218b05
WIP-DeveloperConsole: improving;
AquariusPower Apr 15, 2020
726d2d7
WIP-DeveloperConsole: improving;
AquariusPower Apr 15, 2020
ae8f8a8
WIP-DeveloperConsole: improving;
AquariusPower Apr 16, 2020
54c1514
WIP-DeveloperConsole: improving;
AquariusPower Apr 16, 2020
053a306
WIP-DeveloperConsole: improving;
AquariusPower Apr 16, 2020
eed25e5
WIP-DeveloperConsole: improving;
AquariusPower Apr 16, 2020
294ff82
WIP-DeveloperConsole: improving;
AquariusPower Apr 16, 2020
21719af
Fix SIGFPE in case BodyPart->GetHP() returns 0 (was polymorphed into …
AquariusPower Apr 16, 2020
406c282
DeveloperConsole: new command TeleToMe;
AquariusPower Apr 16, 2020
0ee0e2f
whandler (key handler) globalwindowhandler::ProcessKeyDownMessage()
AquariusPower Apr 17, 2020
ce3cb67
moved some functions: fixChars() GetUserDataDir() to be more useful;
AquariusPower Apr 17, 2020
c75854e
fixed history files placement;
AquariusPower Apr 17, 2020
e716f42
fixed string question history navigation and file naming.
AquariusPower Apr 17, 2020
d49eb9a
developer console: FillWithWalls() new test;
AquariusPower Apr 17, 2020
571d63c
developer console: FillWithWalls() fixed memorizeds;
AquariusPower Apr 17, 2020
9cca7e5
fixed devcons character validation for it's commands;
AquariusPower Apr 17, 2020
268d8fc
devcons: FillWithWalls optional distance around player;
AquariusPower Apr 17, 2020
b038c75
autoplay: applies wielded items too;
AquariusPower Apr 17, 2020
632b428
felib new KEY_DELETE KEY_INSERT safe translation from SDL captured sc…
AquariusPower Apr 19, 2020
d4329d8
crafting: fixed fumbling;
AquariusPower Apr 19, 2020
0cb782b
fumble while cutting a web may make you lose one gauntlet;
AquariusPower Apr 19, 2020
716d6e5
crafting: got broken, fixed;
AquariusPower Apr 19, 2020
7dcadf7
fixed sewing requirements to only be requested for tailorable materials;
AquariusPower Apr 19, 2020
ec2b455
Unified SaveLife() base/common code (with improved healing from burni…
AquariusPower Apr 20, 2020
21c43e1
New pre-processor definition: CURSEDDEVELOPER.
AquariusPower Apr 20, 2020
0c3af2c
fixed a crash in case no favour is selectable (only happens in non wi…
AquariusPower Apr 20, 2020
a00ebdf
CURSEDDEVELOPER mode: making it usable;
AquariusPower Apr 20, 2020
b8b6b18
Auto mapnote over existing engrave will prepend it.
AquariusPower Apr 20, 2020
af35edd
WIP-CURSEDDEVELOPER: fixing and improving usability;
AquariusPower Apr 20, 2020
9b6d4ae
WIP-CURSEDDEVELOPER: fixing and improving usability;
AquariusPower Apr 20, 2020
a695233
sfx regex fix for "die" message;
AquariusPower Apr 20, 2020
d813d50
curseddeveloper.cpp (and .h) new file (unbloating char.cpp), and also…
AquariusPower Apr 21, 2020
94fd9e8
WIP-cursedDeveloper: improving, just usable bodyparts;
AquariusPower Apr 21, 2020
e71ae36
new file wizautoplay.cpp (and .h) to unbloat mainly char.cpp)
AquariusPower Apr 22, 2020
d21a777
Having material manual at inventory, when using craft check strength …
AquariusPower Apr 22, 2020
049625f
Auto map note when constructing some OLTerrain.
AquariusPower Apr 22, 2020
9056dbe
fixing wizard and curseddeveloper code availability based on related …
AquariusPower Apr 22, 2020
9283cd6
WIP-cursedDeveloper: improving;
AquariusPower Apr 22, 2020
fcdf514
Added more automatic colors to map notes;
AquariusPower Apr 22, 2020
df673d7
WIP-cursedDeveloper: improving;
AquariusPower Apr 22, 2020
b72ae7f
WIP-cursedDeveloper: improving;
AquariusPower Apr 24, 2020
a35a430
fixed a bug when digging and arm goes missing;
AquariusPower Apr 24, 2020
3de8c61
added option to allow fight (not move) while overloaded.
AquariusPower Apr 24, 2020
70da281
WIP-cursedDeveloper: improving;
AquariusPower Apr 24, 2020
0f18322
WIP-cursedDeveloper: improving;
AquariusPower Apr 24, 2020
bd072c4
devcons: fixed wizard commands help and granted (denied) access;
AquariusPower Apr 24, 2020
680034f
if sumo wrestler house is crowded messing the game,
AquariusPower Apr 24, 2020
8d98a16
Merge branch 'master' of https://github.com/Attnam/ivan into Attnam-m…
AquariusPower Apr 24, 2020
6a65f73
Merge branch 'SomeFixes1234' of https://github.com/AquariusPower/ivan…
AquariusPower Apr 24, 2020
4bb9282
Merge branch 'master' of https://github.com/Attnam/ivan into Attnam-m…
AquariusPower Apr 25, 2020
0e08393
new message about material info read from manual
AquariusPower Apr 25, 2020
cfaf6b4
new option: allow contrast to make readable too dark text or items or…
AquariusPower Apr 25, 2020
1046fac
fix allow contrast to dark text, items or materials;
AquariusPower Apr 25, 2020
bd7a7bc
another fix to allow contrast to dark text, items or materials;
AquariusPower Apr 25, 2020
9edd2d6
Will fall down if overloaded and try to kick (if OverloadedFight is e…
AquariusPower Apr 25, 2020
b5da5b0
WIP-OverloadedFight: AI to auto use head instead of letting use legs …
AquariusPower Apr 25, 2020
eb2af2d
WIP-OverloadedFight: fix to not let player -ActionPoints mess the gam…
AquariusPower Apr 25, 2020
c85ff4a
WIP-curseddev: improving;
AquariusPower Apr 25, 2020
05c7aa3
Merge branch 'SomeFixes1234' of https://github.com/AquariusPower/ivan…
AquariusPower Apr 25, 2020
f303b55
Merge branch 'AquariusPower-SomeFixes1234' into SomeFixes1234
AquariusPower Apr 25, 2020
dd1930b
cursedDev: fix classnaming;
AquariusPower Apr 25, 2020
9618d5a
cursedDev:fix life save when polymorphed;
AquariusPower Apr 25, 2020
5b15ddb
cursedDev:improving;
AquariusPower Apr 26, 2020
91599cc
cursedDev:wip;
AquariusPower Apr 26, 2020
509e32d
cursedDev: finally looks good, long lasting non wizard tests can be p…
AquariusPower Apr 26, 2020
a57c6b2
cursedDev: trying to fix SEGFAULT when dwarf explodes and player's he…
AquariusPower Apr 27, 2020
2c50815
fixed wizard mode resurrect to take precedence over cursedDev one.
AquariusPower Apr 27, 2020
4c054f4
revised/improved character::ValidateTrapData() usage;
AquariusPower Apr 27, 2020
91f8862
cursedDev: fix init of devCons related cmd;
AquariusPower Apr 27, 2020
a5d6995
Join and split lump now grants minimum craft skill possible.
AquariusPower Apr 27, 2020
d70f990
cursedDev: improving;
AquariusPower Apr 28, 2020
a7d8019
cursedDev: wip;
AquariusPower Apr 28, 2020
b502b64
cursedDev: wip;
AquariusPower Apr 28, 2020
c0943ba
cursedDev: looks ok (again);
AquariusPower Apr 28, 2020
8eb4c63
character::ValidateTrapData() workaround to be more performance wise
AquariusPower Apr 29, 2020
83e76c2
dynamic main menu
AquariusPower Apr 29, 2020
34f12bc
Added SFX to main menu entries;
AquariusPower Apr 30, 2020
99a74ea
tear down web fail sfx;
AquariusPower Apr 30, 2020
e2b4d27
cursedDev: fixing(ed?) player storage torso label detection;
AquariusPower Apr 30, 2020
325afd3
expectedly fixed FeLib's CMakeLists.txt (about pcre and sld-mixer)
AquariusPower Apr 30, 2020
9a22a26
cursedDev: fixed kill credit reset;
AquariusPower May 1, 2020
8acf9bf
cursedDev: fix crash in case there is no plyaer killer.
AquariusPower May 1, 2020
81104b1
shortened fix cmd: FixSumoHouse;
AquariusPower May 1, 2020
44b3a40
cursedDev:
AquariusPower May 1, 2020
70c5405
fixed giving beverages to guards
AquariusPower May 2, 2020
9da6bdd
CraftSkill: improved how it works;
AquariusPower May 2, 2020
32d7f63
cursedDev: improving;
AquariusPower May 2, 2020
50a6a69
added more auto notes to map
AquariusPower May 3, 2020
4b3ee8c
unified open container code
AquariusPower May 3, 2020
13e6571
containers inscribed with ex.: +key+wand+ring etc can auto store such…
AquariusPower May 3, 2020
2ec91ed
added some help info for auto storing items usage
AquariusPower May 3, 2020
771246d
cursedDev: improving;
AquariusPower May 4, 2020
891524e
fixed DELETE key to work again on string question editing
AquariusPower May 6, 2020
b6bb0dc
cursedDev: added a validation (anti-cheat) to savegames that could on…
AquariusPower May 7, 2020
1307864
cursedDev: fixed wakup teleport to home, safely now, no crashes;
AquariusPower May 8, 2020
42df280
fix game::IsQuestItem()
AquariusPower May 24, 2020
57211af
devCons: improving;
AquariusPower Jun 1, 2020
659cc59
trying to fix lights based on volume
AquariusPower Jun 1, 2020
99e8051
expectedly fixed emitation based on volume.
AquariusPower Jun 1, 2020
af3493c
light based on volume: rework calc WIP;
AquariusPower Jun 2, 2020
ab97d32
light based on volume: rework calc DONE;
AquariusPower Jun 2, 2020
3edf3f9
Merge branch 'master' into SomeFixes1234
AquariusPower Jun 2, 2020
a422e80
fixed a bug when trying to split sol stone (by denying it for now)
AquariusPower Jun 3, 2020
4e830d8
items can be shown unlabeled now (w/o engraved text);
AquariusPower Jun 3, 2020
cee1bbf
crafting: undo preparations (undo remains) is working, if cancelled o…
AquariusPower Jun 4, 2020
3f32bf0
Fixing crashes based on using SendToHell(), instead of SendToHellSafe…
AquariusPower Jun 4, 2020
7f22b70
crafting: ingredients will now be tagged (label) with #c in case craf…
AquariusPower Jun 4, 2020
f7c1218
craft:
AquariusPower Jun 4, 2020
8cd8b0f
altSilhouette: outline flash yellow when panicked;
AquariusPower Jun 4, 2020
fdb3f1c
new sfx cfg for digging (new sfx) and imp grim (from red-kangaroo unu…
AquariusPower Jun 5, 2020
c6881f7
AutoPickup,AutoStore: auto store code was getting messy... reworked i…
AquariusPower Jun 5, 2020
39bd737
updated NEWS file
AquariusPower Jun 5, 2020
f5b02cc
update news
AquariusPower Jun 6, 2020
214654b
update news
AquariusPower Jun 6, 2020
51c7645
new graphics for stair up/down (only works on a new game, otherwise w…
AquariusPower Jun 6, 2020
fa7a9fe
update news
AquariusPower Jun 6, 2020
aeeaec1
swapped up/down stairs gfx with new graphics (so kept old one elsewhe…
AquariusPower Jun 6, 2020
a31091a
new stairs gfx: used a trick to grant it won't look like a ramp with …
AquariusPower Jun 6, 2020
4365212
FixSumoHouse: just after win the fight, decos and bananagrower may ge…
AquariusPower Jun 7, 2020
eb720e7
pcre on festring updated cmake for igor and mihail too
AquariusPower Jun 8, 2020
a1209b4
the improved fix for sumohouse
AquariusPower Jun 8, 2020
44620f5
craft: improved recipedata::id() to be unique;
AquariusPower Jun 27, 2020
0a0d102
Merge branch 'master' into SomeFixes1234
AquariusPower Sep 2, 2020
faa4e81
Better favour names
red-kangaroo Oct 7, 2021
d3adef8
Merge branch 'master' of https://github.com/Attnam/ivan into Attnam-m…
AquariusPower Jan 23, 2022
9820510
Merge branch 'Attnam-master' into SomeFixes1234
AquariusPower Jan 23, 2022
b771951
Update database.h
AquariusPower Jan 23, 2022
5048f49
Update command.cpp
AquariusPower Jan 23, 2022
691da54
Update game.cpp
AquariusPower Feb 3, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
812 changes: 659 additions & 153 deletions .devsPrefs/AquariusPower/nbproject/configurations.xml

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions .devsPrefs/AquariusPower/nbproject/project.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>Ivan.github</name>
<c-extensions/>
<cpp-extensions>cc,cpp</cpp-extensions>
<c-extensions>c</c-extensions>
<cpp-extensions>cc,cpp,cxx</cpp-extensions>
<header-extensions>h</header-extensions>
<sourceEncoding>UTF-8</sourceEncoding>
<make-dep-projects/>
Expand All @@ -17,6 +17,7 @@
<sourceRootElem>Main/Source</sourceRootElem>
<sourceRootElem>Main/Include</sourceRootElem>
<sourceRootElem>FeLib/Include</sourceRootElem>
<sourceRootElem>SDL2-2.0.4/include</sourceRootElem>
</sourceRootList>
<confList>
<confElem>
Expand Down
4 changes: 4 additions & 0 deletions Doc/HowTo/DefinesValidator.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,7 @@ or when someone changes a value only at `define.dat` or at some c++ .h file, so
in case c++ has no such define, it will be ignored ex.: the check will be performed only `#ifdef EMISSARY` (currently not used in c++ .h files)

7) run any game, go to the console ctrl+` and run the validator, it will abort complaining about TORSO value with this message: "Defined TORSO with value 2 from .dat file mismatches hardcoded c++ define value of 1!"

Ps.: alternatively (instead of using developer console), you can run this command line commands:
./ivan --defgen # that creates definesvalidator.h
./ivan --defval # to validate it
2 changes: 2 additions & 0 deletions FeLib/Include/festring.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

#include <climits>
#include <vector>
#include <pcre.h>

#include "felibdef.h"

Expand Down Expand Up @@ -119,6 +120,7 @@ class festring
void ExtractWord(festring&);
long GetCheckSum() const;
void EnsureOwnsData(bool = false);
static pcre* CompilePCRE(pcre *pcreExistingRegexWorker, cfestring &fsPattern, festring *pfsErrorMsg=NULL);
private:
static void InstallIntegerMap();
static void DeInstallIntegerMap();
Expand Down
2 changes: 1 addition & 1 deletion FeLib/Include/graphics.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,4 +167,4 @@ class graphics
static rawbitmap* DefaultFont;
};

#endif
#endif //__GRAPHICS_H__
2 changes: 2 additions & 0 deletions FeLib/Include/rawbit.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class rawbitmap
cpackalpha* = 0,
cuchar* = 0, cuchar* = 0, truth = true) const;
v2 GetSize() const { return Size; }
v2 GetFontSize() { return v2FontSize; }

void AlterGradient(v2, v2, int, int, truth);
void SwapColors(v2, v2, int, int);
Expand All @@ -74,6 +75,7 @@ class rawbitmap
uchar* Palette;
paletteindex** PaletteBuffer;
fontcache FontCache;
v2 v2FontSize=v2(8,8); //TODO everywhere using 8 to calculate font size should use this variable, so one day we can have dynamic size font, after that we can set this var to any other proper value
};

#endif
5 changes: 5 additions & 0 deletions FeLib/Source/bitmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -865,6 +865,11 @@ void bitmap::DrawLine(int FromX, int FromY, v2 To, col16 Color, truth Wide)
void bitmap::DrawLine(v2 From, v2 To, col16 Color, truth Wide)
{ DrawLine(From.X, From.Y, To.X, To.Y, Color, Wide); }

/**
* TODO this needs a fix:
* If a line is drawn from x,1 to anywhere and it is WIDE, the game will SEGFAULT.
* Every drawn dot must be checked if is inside the bitmap boundaries...
*/
void bitmap::DrawLine(int OrigFromX, int OrigFromY, int OrigToX, int OrigToY, col16 Color, truth Wide)
{
if(OrigFromY == OrigToY)
Expand Down
51 changes: 49 additions & 2 deletions FeLib/Source/festring.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
#include <cctype>
#include <cstdlib>
#include <cstring>
#include <iostream>

#include "festring.h"
#include "allocate.h"
#include "error.h"
Expand Down Expand Up @@ -713,8 +715,13 @@ festring::sizetype festring::IgnoreCaseFind(cfestring& Where,
return NPos;
}

/* Replaces all occurances of What in Where after Begin with With */

/**
* Replaces all occurances of What in Where after Begin with With
* @param Where
* @param What
* @param With
* @param Begin
*/
void festring::SearchAndReplace(festring& Where, cfestring& What,
cfestring& With, sizetype Begin)
{
Expand Down Expand Up @@ -907,3 +914,43 @@ void festring::EnsureOwnsData(bool Unique)
CreateOwnData(Data, Size);
}
}

/**
*
* @param pcreExistingRegexWorker it has to be freed if was already set
* @param fsPattern
* @param bWarnOnError
* @return
*/
pcre* festring::CompilePCRE(pcre *pcreExistingRegexWorker, cfestring &fsPattern, festring *pfsErrorMsg)
{
if(pcreExistingRegexWorker)
pcre_free(pcreExistingRegexWorker);

if(fsPattern.IsEmpty())
return NULL;

const char *errMsg;
int iErrOffset;
pcreExistingRegexWorker = pcre_compile(
fsPattern.CStr(),
0, // no options
&errMsg, &iErrOffset,
0 // default char tables
);

if (!pcreExistingRegexWorker){
festring fsErr;
fsErr<<"Regex validation failed, if ignored will just not work at all.\n"
<<errMsg<<",\n"
<<"offset:"<<iErrOffset<<".";

DBG1(fsErr.CStr());
//TODO let this work with travis-ci compilation...: std::cerr<<fsErr.CStr()<<std::endl;

if(pfsErrorMsg)
(*pfsErrorMsg)=fsErr;
}

return pcreExistingRegexWorker;
}
2 changes: 1 addition & 1 deletion FeLib/Source/graphics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@ void graphics::AddDrawAboveAll(drawabove da, int iPriority, const char* desc)
vDrawaboveTmp.erase(vDrawaboveTmp.begin()+iIndexLP);
}

char* c = std::getenv("IVAN_LISTDRAWABOVE"); //to help on development, so all priorities can be adjusted easily
char* c = std::getenv("IVAN_LISTDRAWABOVE"); //output to terminal to help on development, so all priorities can be adjusted easily
bool bCOut = c!=NULL && strcmp(c,"true")==0;
festring fsDrawAbovePriority;
for(int i=0;i<vDrawabove.size();i++){
Expand Down
6 changes: 3 additions & 3 deletions FeLib/Source/rawbit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -436,8 +436,8 @@ void rawbitmap::Printf(bitmap* Bitmap, v2 Pos, packcol16 Color, cchar* Format, .
{
v2 F(((Buffer[c] - 0x20) & 0xF) << 4, (Buffer[c] - 0x20) & 0xF0);
//printf("X=%4d -- Y=%d\n", F.X, F.Y);
MaskedBlit(Bitmap, F, v2(Pos.X + (c << 3) + 1, Pos.Y + 1), v2(8, 8), &ShadeCol);
MaskedBlit(Bitmap, F, v2(Pos.X + (c << 3), Pos.Y), v2(8, 8), &Color);
MaskedBlit(Bitmap, F, v2(Pos.X + (c << 3) + 1, Pos.Y + 1), v2FontSize, &ShadeCol);
MaskedBlit(Bitmap, F, v2(Pos.X + (c << 3), Pos.Y), v2FontSize, &Color);
}
}
else
Expand All @@ -451,7 +451,7 @@ void rawbitmap::Printf(bitmap* Bitmap, v2 Pos, packcol16 Color, cchar* Format, .
TRANSPARENT_COLOR,
0 };

for(int c = 0; Buffer[c]; ++c, B.Dest.X += 8)
for(int c = 0; Buffer[c]; ++c, B.Dest.X += v2FontSize.X)
{
B.Src.X = ((Buffer[c] - 0x20) & 0xF) << 4;
B.Src.Y = (Buffer[c] - 0x20) & 0xF0;
Expand Down
11 changes: 10 additions & 1 deletion FeLib/Source/specialkeys.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,15 @@ void specialkeys::AddCtrlOrFuncKeyHandler(SDL_Keycode key, specialkeyhandler Han
*/
bool specialkeys::ControlKeyHandler(SDL_Keycode key)
{
switch(key){ //TODO use SDLK_ keys?
/**
* Important: it will require to use some special SDLK_ keys if they are not
* being translated to a felibdef.h key value
*
* If you use some "mouse pointer indicator OS feature" by pressing the CONTROL key,
* the first time you press a key combination (like ctrl+f) it may not work!
* On the tests I performed, it would only mess RightControl+f here.
*/
switch(key){
case 'f':
Request=Filter;
return true;
Expand All @@ -261,6 +269,7 @@ bool specialkeys::ControlKeyHandler(SDL_Keycode key)
case 'v':
Request=PasteFromClipboard;
return true;
case KEY_DELETE:
case SDLK_DELETE:
Request=ClearStringInput;
return true;
Expand Down
1 change: 0 additions & 1 deletion FeLib/Source/whandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -727,7 +727,6 @@ void globalwindowhandler::ProcessKeyDownMessage(SDL_Event* Event)
#if SDL_MAJOR_VERSION == 1
default:
KeyPressed = Event->key.keysym.unicode;

if(!KeyPressed)
return;
#endif
Expand Down
Binary file modified Graphics/Item.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Graphics/OLTerra.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions Main/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ set_source_files_properties(
Source/smoke.cpp Source/square.cpp Source/stack.cpp Source/team.cpp
Source/terra.cpp Source/trap.cpp Source/traps.cpp Source/worldmap.cpp
Source/wsquare.cpp Source/wterra.cpp Source/wterras.cpp Source/hiteffect.cpp
Source/cmdcraft.cpp Source/cmdcraftfilters.cpp
Source/cmdswapweap.cpp
Source/cmdcraft.cpp Source/cmdcraftfilters.cpp Source/cmdswapweap.cpp
Source/curseddeveloper.cpp Source/wizautoplay.cpp
PROPERTIES HEADER_FILE_ONLY TRUE)

add_executable(ivan ${IVAN_SOURCES} Resource/Ivan.rc)
Expand Down
25 changes: 7 additions & 18 deletions Main/Include/char.h
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,8 @@ class character : public entity, public id
public:
friend class databasecreator<character>;
friend class corpse;
friend class curseddeveloper;
friend class wizautoplay;
typedef characterprototype prototype;
typedef characterdatabase database;
character();
Expand Down Expand Up @@ -364,6 +366,7 @@ class character : public entity, public id
void ActivateEquipmentState(long What) { EquipmentState |= What; }
void DeActivateEquipmentState(long What) { EquipmentState &= ~What; }
truth TemporaryStateIsActivated(long What) const;
truth HasStateFlag(long Flag);
truth EquipmentStateIsActivated(long What) const { return EquipmentState & What; }
truth StateIsActivated(long What) const;
truth LoseConsciousness(int, truth = false);
Expand Down Expand Up @@ -689,6 +692,7 @@ class character : public entity, public id
void LycanthropyHandler();
void SearchingHandler();
void SaveLife();
void SaveLifeBase();
void BeginInvisibility();
void BeginInfraVision();
void BeginESP();
Expand Down Expand Up @@ -1126,6 +1130,7 @@ class character : public entity, public id
festring GetTrapDescription() const;
truth TryToUnStickTraps(v2);
void RemoveTrap(ulong);
truth ValidateTrapData(bool bForceNow = false);
void AddTrap(ulong, ulong);
truth IsStuckToTrap(ulong) const;
void RemoveTraps();
Expand Down Expand Up @@ -1184,14 +1189,14 @@ class character : public entity, public id
void SignalBurn();
void Extinguish(truth);
truth IsBurnt() const;
truth IsPlayerAutoPlay();
truth CheckAIZapOpportunity();
int GetAdjustedStaminaCost(int, int);
truth TryToStealFromShop(character*, item*);
int GetMyVomitMaterial() { return MyVomitMaterial; }
void SetNewVomitMaterial(int What) { MyVomitMaterial = What; }
festring GetHitPointDescription() const;
truth WillGetTurnSoon() const;
truth OverloadedKickFailCheck();
virtual void SetFeedingSumo(truth What) { return; }
protected:
static truth DamageTypeDestroysBodyPart(int);
Expand Down Expand Up @@ -1222,23 +1227,6 @@ class character : public entity, public id
void StandIdleAI();
virtual void CreateCorpse(lsquare*);
void GetPlayerCommand();

truth AutoPlayAICommand(int&);
truth AutoPlayAIPray();
bool AutoPlayAIChkInconsistency();
static void AutoPlayAIDebugDrawSquareRect(v2 v2SqrPos, col16 color, int iPrintIndex=-1, bool bWide=false, bool bKeepColor=false);
static void AutoPlayAIDebugDrawOverlay();
static bool AutoPlayAICheckAreaLevelChangedAndReset();
truth AutoPlayAIDropThings();
bool IsAutoplayAICanPickup(item* it,bool bPlayerHasLantern);
truth AutoPlayAIEquipAndPickup(bool bPlayerHasLantern);
int AutoPlayAIFindWalkDist(v2 v2To);
truth AutoPlayAITestValidPathTo(v2 v2To);
truth AutoPlayAINavigateDungeon(bool bPlayerHasLantern);
truth AutoPlayAISetAndValidateKeepGoingTo(v2 v2KGTo);
void AutoPlayAITeleport(bool bDeathCountBased);
void AutoPlayAIReset(bool bFailedToo);

virtual void GetAICommand();
truth MoveTowardsTarget(truth);
virtual cchar* FirstPersonUnarmedHitVerb() const;
Expand Down Expand Up @@ -1318,6 +1306,7 @@ class character : public entity, public id
ulong WarnFlags;
int ScienceTalks;
trapdata* TrapData;
long lTmpLastValidateTrapDataTurn; //performace wise, no need to store
expmodifiermap ExpModifierMap;
int CounterToMindWormHatch;
ulong MemorizedEquippedItemIDs[MAX_EQUIPMENT_SLOTS];
Expand Down
1 change: 1 addition & 0 deletions Main/Include/command.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ class commandsystem
static truth Open(character*);
static truth PickUp(character*);
static truth Pray(character*);
static truth AskFavour(character*);
static truth Craft(character*);
static truth Quit(character*);
static truth Read(character*);
Expand Down
1 change: 1 addition & 0 deletions Main/Include/craft.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ class recipedata {
v2 v2TailoringWorkbenchLocation;

long lDamageFinalItem;
long lInitialTurn;

public:
recipedata(humanoid* H=NULL,uint sel=FELIST_ERROR_BIT);
Expand Down
56 changes: 56 additions & 0 deletions Main/Include/curseddeveloper.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
*
* Iter Vehemens ad Necem (IVAN)
* Copyright (C) Timo Kiviluoto
* Released under the GNU General
* Public License
*
* See LICENSING which should be included
* along with this file for more details
*
*/

#ifndef __CURSEDDEVELOPER_H__
#define __CURSEDDEVELOPER_H__

class bodypart;
class character;
class festring;

class curseddeveloper {
public:
static bool IsCursedDeveloper();

#ifdef CURSEDDEVELOPER
public:
static void Init();
static bool IsCursedDeveloperTeleport(){return bCursedDeveloperTeleport;}
static bool LifeSaveJustABitIfRequested();
static bool LifeSaveJustABit(character* Killer);
static long UpdateKillCredit(character* Victim=NULL,int iMod=0);
static long ModKillCredit(int i){UpdateKillCredit(NULL,i);return lKillCredit;}
static long GetKillCredit(){return lKillCredit;}
static void RequestResurrect(character* C){if(!Killer)Killer=C;bResurrect=true;}
protected:
static bool BuffAndDebuffPlayerKiller(character* Killer,int& riBuff,int& riDebuff,bool& rbRev);
static void RestoreLimbs(festring fsCmdParams = CONST_S(""));
static bool HealTorso(bodypart* bp);
static bool HealBP(int iIndex,int iMode,int iMinHpOK=0);
static bool CreateBP(int iIndex);
static void NightmareWakeUp(character* P);
static void ResetKillCredit(festring fsCmdParams = CONST_S(""));
private:
static bool bCursedDeveloper;
static bool bCursedDeveloperTeleport;
static bool bInit;
static long lKillCredit;
static bool bNightmareWakeUp;
static bool bResurrect;
static character* Killer;
#else
public:
static bool IsCursedDeveloperTeleport(){return false;}
#endif
};

#endif //__CURSEDDEVELOPER_H__
4 changes: 2 additions & 2 deletions Main/Include/definesvalidator.h
Original file line number Diff line number Diff line change
Expand Up @@ -9473,10 +9473,10 @@ class definesvalidator{


#ifdef WEAPON_SKILL_CATEGORIES // DO NOT MODIFY!
bsA = 11;
bsA = 12;
bsB = WEAPON_SKILL_CATEGORIES;
if(bsA!=bsB)
ssErrors << "Defined WEAPON_SKILL_CATEGORIES with value 11 from .dat file mismatches hardcoded c++ define value of " << WEAPON_SKILL_CATEGORIES << "!" << std::endl;
ssErrors << "Defined WEAPON_SKILL_CATEGORIES with value 12 from .dat file mismatches hardcoded c++ define value of " << WEAPON_SKILL_CATEGORIES << "!" << std::endl;
#endif


Expand Down
Loading