Search Results
Searched for posts by vasiliy in all forums

Showing results 121 - 130 out of 434 total
Modify your search
Posted by vasiliy, Feb 23 at 4:04 am
extended keybind mechanics a little. now any command can have any number of keys bound (except the movement commands: they are hardcoded for now , and it is possible to bind F1-F10 and Tab, with optional modifiers. so keyboard help is F1 now, and minimaps are Tab and Shift+Tab.

also, "Press <KEY> for a list of commands" is not hardcoded now: the game knows which key to press, and shows it.

there is no way to rebind commands in-game, but "k8ivan_keys.rc" file is editable. it is written on the first start, and can be deleted to restore default keybindings.

movement keys should be editable too, and it should be possible to bind commands to Alt+<char> and Ctrl+<char>. maybe i'll implement it later.
Posted by vasiliy, Feb 22 at 2:01 am
SPOILER ALERT. Click here to see text.
there is Lady Decora, shining knight of Legifer in Attnam. she seats near the fountain, which is at the left paw of the frog, and she is a priestess.

but adding doctors is a good idea too, i think.

as for stores… New Attnam has enough. but i'm thinking about making Black Market easier to reach. PC prolly should be able to buy a map with BM location from rebel quartermeister, or something like that.
Posted by vasiliy, Feb 21 at 9:47 am
fun fact: it is possible to turn on minimap overlay from the console, and play in this mode. that wasn't planned, it just happened.
Posted by vasiliy, Feb 21 at 5:11 am
new minimap look: normal and small.

minimap basically works like "Look" — you can move the cursor around, and press "l" to look at the square. i will prolly add map markers later, and maybe something else.

p.s.: if anybody wonders why paperdoll is not at the top… because in the top right corner of my display is usually sits the videoplayer. which covers that top part of the game window, and i cannot see the paperdoll. this is the only reason why there is the option to move it down.
Posted by vasiliy, Feb 20 at 11:34 pm
i like both. 4x4 pixel tiles is "more map", but with 8x8 it is possible to see items and such. it's fun to play in 8x8 mode, btw. also, 4x4 map is a noticable CPU hog: on my box CPU usage for normal play is 1-2%, but it raises to 7-8% with 4x4 minimap. this is because it is full-sized bitmap internally, and it is HUGE. but this is the only sane way to do it. trying to follow IVAN rendering routines and recreate them for other tile sizes is… just no. that's why i HAET OOP: it's virtual method calling virtual method calling virtual method calling… no central point, no way to trace it without remembering the whole class hierarchy.

and thank you for the noise idea! i'll definitely try it. that brown is not even something consciously choosen: i simply typed in RGB numbers without thinking at all. that was the first minimap — empty brown rectangle. i decided to think about it later… which usually means "never".


i wanted minimap for a long time simply because "Look" is too boring to use. i added "ctrl+arrows" to move by 10 squares (accidentally, to all cursor selections , but it's still far from good map view tool.

also, i always wanted to hack in some code to visualise level building. i want to see the animation of IVAN placing rooms, digging tunnels, and so on. dunno it if is possible without too much efforts, tho. so i decided to start with minimap first.

p.s.: i remember about console command for vanilla. i even started it, but then got distracted by reading git log.
Posted by vasiliy, Feb 20 at 11:53 am
SCREENSHOT REMOVED. SEE LATER POST.

minimap, small mode. i cannot decide which is better, so let's support both!
Posted by vasiliy, Feb 20 at 8:14 am
SCREENSHOT REMOVED. SEE LATER POST.

also, experiments with minimap implementation. just a first draft, it renders something. totally not optimised, but meh…

the implementation is very simple: render big part of the level onto separate bitmap using only memorized squares, then blit the result with /2 stretching. memorized monsters are not rendered, but memorized items are.

it is possible to make everything much faster using minimap caching, but… i see no reason in such complex code. everything is fast enough, and i'll rewrite it later if it turned out to be slow. anyway, minimap is planned as separate mode, somewhat like "Look", so there is no need for it to be lightning fast.
Posted by vasiliy, Feb 20 at 7:45 am
k8jam is using pkg-config to detect libraries. SDL2 mixer might have a different name. i am testing for "SDL2_mixer", but it might be "SDL2_Mixer"… or might have no .pc file at all. also, there might be a conflict between 32-bit and 64-bit libraries — pkg-config is using 64-bit libs, and it just happened to work. i never really tried to build k8I on 64-bit system, so i simply don't know.

fejoa wrote
Very pleasant playing experience vasiliy, and great ergonomic improvements, thanks heaps!
thank you!

i believe that color printer could be easily integrated in vanilla. it is using two control codes: "\1N" and "\2". the former sets the color from some predefined set (or you can use "\1#nnn|" for hex RGB (3 or 6 chars), the latter resets everything back to the "default" color. and it is easy to use `RawTextData` object to reimplement `SplitString()`. also, `str.GetSize()` should be replaced with `str.Length()` in several places — `Length()` calculates string length without control codes (also using `RawTextData` iterator).

once all text printing methods understand colors, colors could be used anywhere, and it is possible to gradually introduce color coding. or even imlement it as option — printing routines will simply ignore control codes according to the flag.

this is prolly the easiest thing to port.

p.s.: `RawTextData` is useful, because it tracks the current color, so word wrapping routine can use it to start the new line with the correct color. see `WrapDataFont` object (silly name, i know , which implements word wrapping with color code propagation. it uses `CharWidth()` method to get char width, which can simply always return `8` to implement monospace wrapping.


p.p.s.: `k8jam -jN` works too, just like you expect it to work with `make`.
Posted by vasiliy, Feb 20 at 5:22 am
great idea. totally "ivanesque".
Posted by vasiliy, Feb 20 at 4:06 am
but "mostly fixes" means that the game is feature-stable! what else do you need to declare it "1.0"?!

anyway, it was just a suggestion, i never intended to push you all in that direction. just thought that the number looks nice, and won't hurt.

p.s.: will it work if i bump k8I to "666.x"? everybody knows that there is "0." before it, so it can be simply omited. so vanilla is "v60" now.