Lambdarogue port?


Ok, downloaded and compiles well for windows and pandora/N900. I try to add a 800x480 Mode, needs some time and testing.


Thomas
 
Last edited by a moderator:
It would be nice if you could share your changed .pas and graphics files here in an attachment :)
 
In Input.pas I changed function cookKey to map backspace key to escape (to exit inventory menu etc)


SDLK_BACKSPACE:^M


cookKey := SDLK_ESCAPE;^M


Also changed 800x600 window to 800x480. Game is already semi playable.


Strange that one starts in the catacombs instead of temple. New graphics look nice.
 
I fixed up some text and messages for 800x480 screen.


All changed files have a .pas.orig file so you wont lose the originals if you unpack them into the lambdarogue source dir.


Most changes are commented with //klapse. Use diff to see all changes.


The game is fairly playable now. Please use and improve these. If you make improvements please attach them in this thread!


cheers :)

klapseLR.zip
 

Attachments

  • klapseLR.zip
    204.2 KB · Views: 148
Well, well, nice to see this port seems to work so far :)


Thanks to all your work.


Oh, by the way, I'm the original LR developer. ;)

any output to screen is hard coded in hundreds lines of codes. He uses text output and two different graphics modes, but this is done by checking "UseSDL" and "UseHiRes" - Flags at many positions in different source files, crazy.

Actually not THAT crazy. Basically, the game uses console (ASCII) output. All graphics related stuff is basically a very simple terminal emulator, using a "font" consisting of graphical tiles. :)


Edit: Can anybody post a screenshot of the port? I'd like to know how it looks.


Also, @klapse, I had a look into your source archive, actually not so many changes so far. What about all these user interface elements? Do these show up? (Esp. the action bar at the bottom of the screen).
 
Last edited by a moderator:
Hi,


good to see you mariodonick and weclome. I have done some code clean up, normaly replacing string const used by in IMG_Load with global variables, most of UseHiRes conditions can be removed. Coud you resize the title image to 800x480 please.


title-480.jpg


My first try looks not so good, i have to cut your text from image and past into smaller image.


Screenshots from older version:


gam01.png


@klapse


Thanks, i will merge it with my changes.


May be, i have a playable version next day.


Thomas


Edit: Move screenshot to attachment
 
Last edited by a moderator:
@Mario welcome to the forum!


I didnt change any graphics positions yet. Just text. I found the locations of code to change by "grepping" the source for onscreen messages.


screenshot01.pngscreenshot02.pngscreenshot03.png


I dont have a computer so it takes some time to make any changes. I cannot resize images at the moment.


Kidpaddle: please attach changed files instead of a full build - my bandwidth is limited. Thank yee :)/>


EDIT: Sometimes I see a text display of character stats in upper left corner of normal dungeon display overlapping partly the character portrait, then it disappears when I switch windows (to take a screenshot). Where is this display coded? Is it supposed to always appear?


screenshot06.png


I found I can make it appear by clicking on character, which brings-up Status screen, then hitting backspace (esc) to return to game view. When I invoke it this way, it does not overlap the character portrait.


EDIT2: What purpose does resting serve - it just passes turns? I added to fprl.pas:2205


ThePlayer.intHP := ThePlayer.intHP + 1; // klapse resting heals a bit


But maybe this makes play too easy? My player has no other way to heal...
 
Last edited by a moderator:
Ok, i have resized most graphics, changed many absolute position, and best is, all three graphics modes are working. I'm not ready, but most screens fits to 800x480.


On Windows all is working, but keyboard controls in game main loop on pandora not. Needs some more investigations.


Thomas
 
Last edited by a moderator:
Bug found. The lambdarogue.cfg was defect, as result, all key bindings set to zero, so no key was accepted in main loop. Game is running on Pandora, i will upload a beta version next day.


Thomas
 
There is a different rather big bug: You didn't put a working PXML.xml file into the root-directory of the PND. That leads to the fact that the game is mounted under a very wierd directory:



Code:
/mnt/utmp/application.id.here.use.package.id.for.single.appliation.pnds/


I noticed this when the game crashed out of nothing and I wanted to see the reason for this. It was not the first time that it crashed. So i tried to look at the pnd_run-log of the pnd which had the equal strange name. I don't know if adding a PXML.xml will solve the crash-issues, but in any way it should be added.
 
Bug found. The lambdarogue.cfg was defect, as result, all key bindings set to zero, so no key was accepted in main loop. Game is running on Pandora, i will upload a beta version next day.


Thomas
And please attach your changes .pas files. Thanks!
 
EDIT: Sometimes I see a text display of character stats in upper left corner of normal dungeon display overlapping partly the character portrait, then it disappears when I switch windows (to take a screenshot). Where is this display coded? Is it supposed to always appear?

On a computer, this is a mouse over (like a tooltip) when the mouse hovers the status area in the upper left corner. There are also mouse overs for the action bar on the bottom of the screen.


It's in the main loop where all the input events are catched:



Code:
// Mouse Overs

if Knoepfe = 0 then

MouseOvers(KX, KY);


MouseOvers is in input.pas.


(By the way, "Knoepfe" is the German word for "buttons" ...)

EDIT2: What purpose does resting serve - it just passes turns? I added to fprl.pas:2205


ThePlayer.intHP := ThePlayer.intHP + 1; // klapse resting heals a bit


But maybe this makes play too easy? My player has no other way to heal...

Resting just passes turns, yes. I deliberately removed HP/PP regeneration during rests. You can find items with this effect, though (i.e. wear it and your HP or PP regen). For PP, you can also sit on ocassionally availble stools.


Edit: Healing is possible either by eating Aspirin / Penicillin, or by chanting healing songs, or by going to hospitals. Also, HP/PP are fully restored with each CLV up.
 
Last edited by a moderator:
@Lomaxx


strange, if no pxml file is found, uploader rejects a file upload. I will upload a new file from older version today.


@klapse


Sure, all changed files and one new file will be attach, i will add an intermediate result today or next day. But not all position are corrected, and hopefully, i have not change any important game sequence.


@mariodonic, klapse


German: Wenn ich das richtig mitbekommen habe, sind wir alle der deutschen Sprache mächtig, oder?


Thomas
 
Last edited by a moderator:
@mario Thanks for the tips. I will change my character status mouseover to always on.


Healing is hard. I havent found aspirin in my past few playthroughs. The price for the heal chant has increased(?) to 600 credits and it takes a long time to collect that if I am also buying other things. I will try to play better. I agree that healing by resting is too easy, unless perhaps one added random monster encounters to make resting much more dangerous.


I am also interested in adding a status line for hunger "full", "hungry", "starving". It seems difficult to collect enough food in the catacombs. And I keep dropping my equipped weapon due to weakness. It seems to be necessary to consume several food items to regain strength. I like needing to eat in roguelikes, but I want to add a "hungry" warning Hstatus text) so that I can return to the temple if food is low.


When arriving at the outskirts of Enoa, usually by accident, new players need to discover that the stairway back to the catacombs is marked by a green dot on the "radar screen". This took me a long time to figure-out.


Also in the outskirts, it would be nice if some of the houses contained inhabitants. Maybe they could give the player tips on how to get back to the catacombs or where to look for quest items. Or perhaps the houses could contain a couple of random traders?


@kidpaddle, we all can speak german but it is an english forum. I am excited to try-out your changes!
 
You are right, but my English knowledge is sometimes not good enough, so if i PM someone, i can do it in german :)


Thomas
 
Healing is hard. I havent found aspirin in my past few playthroughs. The price for the heal chant has increased(?) to 600 credits and it takes a long time to collect that if I am also buying other things. I will try to play better. I agree that healing by resting is too easy, unless perhaps one added random monster encounters to make resting much more dangerous.

I usually start out with 1 package of Aspirin, go to the dungeon (levels 1 and 2), collect items and sell everything I find. Then buy more Aspirin, maybe some armour or better weapon, and go deeper (levels 3 to 5). In level 5, you have more traders, which sell Penicillin (which is better than Aspirin). Usually, it is not that hard to survive, if you don't spend too much money on stuff which is useless in the early stages of the game.

It seems difficult to collect enough food in the catacombs. And I keep dropping my equipped weapon due to weakness. It seems to be necessary to consume several food items to regain strength. I like needing to eat in roguelikes, but I want to add a "hungry" warning Hstatus text) so that I can return to the temple if food is low.

I usually have at least 2 meat or fish, and 2 bread, and often some cake, in my inventory. Bread and meat can be combined to burger, bread and fish to breadroll (combine items by dropping them onto each other).


If you are able to perform fire magic, you can also cast a fire spell onto a corpse of a dead enemy, thereby creating meat. (to do this, cast the spell in the direction of the tile where the corpse is lying).

When arriving at the outskirts of Enoa, usually by accident, new players need to discover that the stairway back to the catacombs is marked by a green dot on the "radar screen". This took me a long time to figure-out.

The minimap symbols are explained in the manual:


http://lambdarogue.net/guide.html#interface

Also in the outskirts, it would be nice if some of the houses contained inhabitants. Maybe they could give the player tips on how to get back to the catacombs or where to look for quest items. Or perhaps the houses could contain a couple of random traders?

Which NPCs and quests are available in a game depends on your chosen profession or religion. The NPCs in the outskirts SHOULD be in the houses, but sometimes this does not work (and I did not find out why).


A general remark:


As I explained here and here, LR development has basically stopped, so besides a final 1.7 release in 2013 with a new 40x80 tileset and a final questline, I won't do anything else for this game. Instead, work on part 2 has already begun.


However, you are free to create a fork of the game and include any changes you like. (Just be so nice and tell your players that it is a fork of a game made by me.)
 
Ok, i have upload some files:


All changed and new files: lambdarogue_diff.zip (15MB)


Beta, only as zip file: lambdarogue164.zip (100MB) run "./fprl" in console window. This file includes a windows binary fprl.exe with 800x480 resolution for testing :) I don't why, but same content as pnd doesn't working, strange.


Older Version 1.6.0 with pxml file: lambdarogue.pnd (81MB)


As noted before, the port 1.6.4 is not ready, but mostly playable. Mouse support is deactivated, but will be reimplemented.


Thomas
 
Last edited by a moderator:
Thanks for the playing advice Mario! I just got wiped out by antbee spittle again in a long straight corridor. Never got to dungeon level five. Grah.


I understand that you are done with development, but I want to note some things you or we may want to consider for the N900/pandora port...


* On the postman's quest, the word "loan" (used twice) is incorrect. The German "lohn" translates to "payment" or "reward" in English.


* The blue, yellow and green dots (showing player, NPCs and stairs) on the map (radar) view are impossible to recognize when the player has explored the map and the map is full of white lines. Can we add a dark border around those icons so that they are more visible? @KidPaddle perhaps could you draw a darkdark-grey border around them in graphics/extra.png? I have no gimp on my phone.


* On our small screen, the hunger status icon (from graphics/extra.png) shows a 1-pixel wide decreasing bar for "hungry", "fainting" and "starving" states. These bars are easy to overlook. Maybe better would be to colorixe the meat yellow for "fainting" and red for "starving" to make these serious states more noticeable.


* The player strength begins to drop to zero as soon as food is below 200 (hungry).. Is this intended or should the strength decrease only when below 60 (fainting)? I ask because the player has only a warning of hunger below 200, and very soon after that, he drops his weapon. Usually if I become hungry, I don't become weak immediately.


fprl.pas:2009


// if food is below 200, decrease strength until it is 0^M


if (ThePlayer.longFood < 200) and (ThePlayer.intStrength > 0) then^M


Dec(ThePlayer.intStrength);^M


I also added a hunger status line for the status sreen (for myself) at line 5409 of fprl.pas.


if (ThePlayer.longFood > 200) then


TransTextXY(1, 12, 'Food : Satiated' );^M


if (ThePlayer.longFood > 60) and (ThePlayer.longFood < 201) then


TransTextXY(1, 12, 'Food : Hungry' );^M


if (ThePlayer.longFood > 20) and (ThePlayer.longFood < 61) then


TransTextXY(1, 12, 'Food : Fainting' );^M


if (ThePlayer.longFood > 0) and (ThePlayer.longFood < 21) then


TransTextXY(1, 12, 'Food : Starving' );^M


These are just suggestions I make, I am not intending to release a fork.


Cheers / Prost!
 
Back
Top