Search Results
Searched for posts by vasiliy in all forums

Showing results 31 - 40 out of 103 total
Modify your search
Posted by vasiliy, Oct 27, 2017 at 9:03 pm
older libpng still crashes on your pngs, due to iTXT chunk with xml crap. while this is definitely libpng problem, removing iTXT chunk is a good thing by itself: in some files that chunk alone is bigger than the rest of the data!

p.s.: this report is for binary built from source on my GNU/Linux, of course, not for official binary.
Posted by vasiliy, Oct 27, 2017 at 10:20 am
almost working "universal worldmap POI system", that allows creating up to 255 worldmap locations without any modifications in C++ code.

instead of creating subtypes of owterrain, i chose to use differenct configs for different POIs. revealing quest POIs still require C++ code, tho.

i attached a working draft of owterra.dat. very WIP, i'll prolly add some more options there.
Attached files
owterra.dat (4.16 kb)
Posted by vasiliy, Oct 27, 2017 at 12:59 am
finished (except some tiny bits) replacing hardcoded constant values with "define.dat" access. some things still have to be kept in sync between C++ and "define.dat" (like number of states, or some other counters), but almost everything else is taken directly from "define.dat", so no more two files to sync on changes!

quite happy with that.

also, there is (not currently used) mechanics to call simple functions from .dat scripts, which can (and should) be used to move some material and other effects to .dat files. basically, all EFFECT_* things are very simple and can be done with equally simple script commands. yet i don't know if i'll implement that: new material effects require C++ coding anyway...
Posted by vasiliy, Oct 26, 2017 at 12:58 pm
made equipment list slightly smarter: it now preselects slot with recently picked up item (one that was picked up less than 16 turns ago), and selects most recently picked up item in item list for a slot. most of the time this is what you want to do anyway, as you prolly just picked up something you want to equip (or compare). also, item list for empty slot preselects first non-empty item, 'cause it is unlikely that you want to select "None" for empty slot. %-)
Posted by vasiliy, Oct 26, 2017 at 6:47 am
p.s.: you may take a look at `character::GoOn()` too. i can't give you a list of commits to look for, as it is a complete rewrite of the original. but it worth porting, 'cause my `g`o command is smart enough to follow tunnels with turns, stop at "interesting" (read: previously unstepped onto) items, near the doors and before meeting an enemy. i.e. `g`o is really usable.

yet the changes require adding some new methods to various classes, so it will require some reverse-engineering work.
Posted by vasiliy, Oct 26, 2017 at 6:30 am
for global consts, it is basically nothing more than adding this to `game` class:
sLong game::GetGlobalConst (cfestring &name) {
  auto it = GlobalValueMap.find(name);
  if (it == GlobalValueMap.end()) ABORT("Global constant '%s' not found!", name.CStr());
  return it->second;
}

and then replacing various defines in "ivandef.h" with it, like:
/* old: #define ELPURI_CAVE  1 */
#define ELPURI_CAVE  (game::GetGlobalConst("ELPURI_CAVE"))

you may need to replace several switches with `if`s too.


as for `'MustBeRemovedFromBone()`, see these commits:
http://repo.or.cz/k8-i-v-a-n.git/commit/73891ad66d8e339ffef3...
http://repo.or.cz/k8-i-v-a-n.git/commit/51f0feccf887bd97e1a5...

>k8ivan is on a git repository eh? Is it possible to do some git magic to merge things from another repo into GitHub?
i don't think that you will be able to simply merge my changes. first, my coding style is greatly differs from original one, so textual merges will definitely fail. second, my codebase has completely different file layout. third, i did alot of changes in various parts, including felib. not enough to prevent manual patch porting, but enough to confuse git automation. that's why i'm not simply attaching patches to comm. fork — it is impossible to automate this. sorry.


p.s.: i wonder why you didn't took my fork as a base. ok, ok, i never explained what i did with it, so it may be a little confusing. but it has much better modularization ("one file per entity" layout, for example), and reinstantiate windows support was really easy back then. but alas, that ship was sailed. tbh, i never really wanted to "go my own way", but that ship was sailed too. %-)
Posted by vasiliy, Oct 26, 2017 at 4:59 am
as we all know, many things in the engine are hard-coded, both in "ivandef.h", and in "define.dat". as the engine loads "define.dat" early at startup, and keeps it loaded, at least some hardcoded things can be changed to lookups in `game::GlobalValueMap`.

i think that it is most useful for special dungeons/levels, so if someone will want to change dungeon scripts (to make GC longer, for example, by inserting extra levels before Elpuri), it can be done entirely in script file.

also, adding level tags, and HomeLevel for monsters will allow to cleanup their `MustBeRemovedFromBone()` method, effectively replacing all special cases (Jenny, Enner, Elpuri, Oree, etc.) with one general case.

i did it all in my fork, and it seems to work ok. i'm suggesting to do the same in comm. version too. at least don't hardcode dungeon numbers anymore — this will allow authors to tweak (existing for now) dungeons that needs special processing without recompiling the code. i.e. after adding special processing to C++ side once, user will be able to test various dungeon designs without messing with the game sources.
Posted by vasiliy, Oct 25, 2017 at 1:02 am
actually, dimmed lantern is almost the same as oil lamp. yet, why not? tnx for the idea, switched.
Posted by vasiliy, Oct 24, 2017 at 6:06 pm
i made a lantern little less bright, and made memorized tiles little darker. i think the undergrounds looks more… "undergroundy" this way.
Posted by vasiliy, Oct 24, 2017 at 5:55 pm
i swapped the meanings, and changed pink to orange, and now it looks much better.

this one change, btw, was done not out of desire of add even more color, but for practical reasons. i want to know if i have something more to equip in a slot without selecting the slot and looking into new list. i'm not a Real Hardcore Player, so i often don't remember what i have in my inventory. %-)

sure, this can be turned into configurable option. but i'm not planning to turn it off anyway, so i am too lazy to add an option for that (i already have 27 options in list, lol).

i'm sure that the list can be made better with careful color selection, tho. designing good UIs is something i absolutely cannot do. %-)

p.s.: aaargh, vasily's engrish again. let it be.