Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old August 13, 2019, 10:37   #1
Gwarl
Knight
 
Join Date: Jan 2017
Posts: 727
Gwarl is on a distinguished road
Angband 2.9.3L

The L is for .live

I've been working on updating 2.9.3 with some newer features and made a repository with my changes. The reason I chose 2.9.3 is because many variants, even those based on 2.8.1 incorporate many patches that were eventually added to Vanilla. So it serves as a starting point for refurbishing other variants (it seems that many variants stopped keeping up with vanilla changes after 2.9.3).

https://github.com/OwenGHB/angband-293L

This removes most frontends and deprecates most others, besides curses. There are several patches to modernise the GCU frontend.

L64 patch - There's a bug in older versions and variants of angband which causes them to fail on 64 bit systems, it was incorporated into 3.0.x and has been applied here

xterm colour patch - At some point poschengband incorporated a colour scheme brought into V in 3.1.2v2 and I've gotten quite practiced at applying it to older variants which need it. 2.9.3 follows the same pattern as it is the pattern. This patch is incorporated here.

bigscreen - Through laborious comparisons of 2.9.3, 2.9.4, 2.9.7 and 3.0.1, using the 2.9.0 bigscreen patch as a guide, I managed to reconstruct the changes which 3.0.1's bigscreen curses mode relies on, and added the option to play with a main term window larger than 80x24. Interestingly I noted that not all the hardcoded constants which the original bigscreen patch modified were updated in V - this is why gruesome software bugs still leap out from halfway down the screen - they appear on line 23 (Term->hgt-1). This makes a huge difference

monster list - A feature already present in 3.0.6, copying the implemention from there was quite difficult as it would have relied on other fundamental changes, and I'm not sure I even like the 3.0.6 iteration that much. Instead I applied a patch for version 2.9.1 which hadn't broken compatibilty with 2.9.3 to provide a visible monster list subwindow. This is a little different, it applies color coding to enemies based on whether they are OOD, unique, OOD uniques etc

Note that you can't use bigscreen and the monster list at the same time, as thus far you can either have a large playing area or subwindows, but not both. This is still the case in 4.x but the situation is different in poschengband and its forks - a GCU port upgrade I intend to bring to current V and then backport.

I would also like to have [ as a command to see the monster list without needing to use a subwindow, present as a feature in 3.1.2 but with code in places that don't exist in 2.9.3. having an object list too might be nice for the sake of completeness. But that might not be strictly necessary - I have provided for an interface which help prevent offscreen deaths with

The final change I intend to make is only really relevant to angband.live - character outputs. It would be nice to include the descriptive savefile headers from 3.5.0 and later to be read by the server but they rely on a savefile system brought in in 3.1.x. That might not be prohibitive but it does make things less straightforward. The alternative is to include the patch presently used for most variants on the site, which outputs the info to a .txt file

This project can be used to set a standard for renovation of older variants. Kangband in particular is conformant to 2.9.3 codewise so it should be relatively straightforward to apply the same changes. Kangband has very pretty towns and I am looking forward to seeing them in bigscreen, as well as the Zangband 2.5+ wilderness.
Gwarl is offline   Reply With Quote
Old August 13, 2019, 11:12   #2
Gwarl
Knight
 
Join Date: Jan 2017
Posts: 727
Gwarl is on a distinguished road
And I almost forgot - thanks to Nick for creating AngbandPlus, which was an invaluable resource for this
Gwarl is offline   Reply With Quote
Old August 13, 2019, 12:40   #3
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 54
Posts: 7,773
Donated: $60
Nick is on a distinguished road
This is wonderful, awesome work.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is online now   Reply With Quote
Old August 13, 2019, 14:04   #4
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 5,345
Donated: $40
Pete Mack is on a distinguished road
There are some things that made it into very late versions of 3.0 that really belong in other variants, notably the knowledge menus from unangband. It is easily portable code, and unangband doesn't use the menu code, so its version of the knowledge menu works independently of it. (But the menu code makes other things easier, too.)
Pete Mack is offline   Reply With Quote
Old August 13, 2019, 15:09   #5
Gwarl
Knight
 
Join Date: Jan 2017
Posts: 727
Gwarl is on a distinguished road
Just ported most of this to Kangband 2.9.3r1 (no monster list yet) - possibly the first time it's been playable with a big screen?

https://github.com/OwenGHB/Kangband-293L

Also up on angband.live
Gwarl is offline   Reply With Quote
Old August 13, 2019, 22:11   #6
Gwarl
Knight
 
Join Date: Jan 2017
Posts: 727
Gwarl is on a distinguished road
I've managed to get zangband 2.4.0 to understand the difference between /pref/ and /user/ so that it functions properly on angband live, and it is a strong candidate for the next bigscreening.

zangband included its own version of the bigscreen patch in 2.5.2 but the original fixed wilderness was removed for 2.5.0
Gwarl is offline   Reply With Quote
Old August 13, 2019, 22:33   #7
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,932
Donated: $40
takkaria is on a distinguished road
Ah, this is very cool - 2.9.3 was current when I first encountered Angband. It's funny to see it resurrected.
__________________
takkaria whispers something about options. -more-
takkaria is offline   Reply With Quote
Old August 14, 2019, 00:05   #8
Gwarl
Knight
 
Join Date: Jan 2017
Posts: 727
Gwarl is on a distinguished road
Quote:
Originally Posted by takkaria View Post
Ah, this is very cool - 2.9.3 was current when I first encountered Angband. It's funny to see it resurrected.
2.9.4alpha incorporated the reportedly controversial JLE patch so 2.9.3 was arguably the last 'old' angband. Although having played some variants based on 2.8.1, and then playing 2.9.3, I suspect 2.8.1 was also more difficult.. (but won't compile until I pick up more tricks)

The idea of anything older than 2.8.1 fills me with mild horror
Gwarl is offline   Reply With Quote
Old August 14, 2019, 00:42   #9
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,932
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by Gwarl View Post
2.9.4alpha incorporated the reportedly controversial JLE patch so 2.9.3 was arguably the last 'old' angband. Although having played some variants based on 2.8.1, and then playing 2.9.3, I suspect 2.8.1 was also more difficult.. (but won't compile until I pick up more tricks)
I think by the time JLE was incorporated, it wasn't super controversial... it had been around for a few years already by that point. But like any significant change not everyone liked it. The spell list was significantly revised too - once every 17 years seems quite like a good pace to me.

Quote:
The idea of anything older than 2.8.1 fills me with mild horror
After I removed Lua, the code from 3.0.6 closely resembled the code from 2.9.3. And there were a *lot* of cleanups after that. For example, the #defines around the custom int types were horrendous. I spent ages ripping out code for systems that were dead already 12 years ago and simplifying stuff, so it's funny to see you doing the same thing now, for the same platforms... But all that code was needed to get things working for someone, somewhere, on a some mainframe. It's funny now the dust has settled, desktop computers have peaked, and Windows/Mac/Linux are the only three platforms anyone cares about supporting, but at one point that didn't seem like an obvious outcome. O diversity has reduced a lot.

And it blows my sometimes that bits of Angband have existed in three different languages (probably more than one version of Pascal, and then C and Lua) over four decades. Ben Harrison did a very good job of turning code that still resembled the Moria - that was written in Pascal - into something readable. Even if by modern software engineering practices it's a total nightmare.
__________________
takkaria whispers something about options. -more-

Last edited by takkaria; August 14, 2019 at 00:48.
takkaria is offline   Reply With Quote
Old August 14, 2019, 00:58   #10
Gwarl
Knight
 
Join Date: Jan 2017
Posts: 727
Gwarl is on a distinguished road
Well, see the picture attachment for my motivation. Judging by the code as I found it, Kangband has never been run in a terminal with a main term window larger than 80x24 before, but it's very pretty.
Attached Thumbnails
Click image for larger version

Name:	unknown.jpg
Views:	85
Size:	18.7 KB
ID:	1749  
Gwarl is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Reviving Iso-Angband, an isometric view addon for Angband Hajo Development 111 August 3, 2014 19:44


All times are GMT +1. The time now is 02:27.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.