Skip to content

ACTION_READLN - it's bad for players and your mods, please replace it

ALIENALIEN Member Posts: 1,271
edited May 2021 in General Modding
Hi,

The famous weidu ACTION_READLN function is the evilest thing when it comes to dealing with any kind of mod installation, regardless if it's done manually, via the weidu command line or by 3rd-party install tool. Lucky, some modders already declared the will to remove ACTION_READLN like AstroBryGuy for BG1NPC.

What is wrong with ACTION_READLN?

Let me demonstrate an example: Mod: Worldmap, currently as TOP1 at SHS downloads


What is the problem? The player can't choose those two choices which mod provides:

Original Travel Times and Area Visibility / Revised Travel Times and Area Visibility
Large Worldmap 4900x3500 / Huge Worldmap 8000x4600

This lead to:
  • impossible to present ACTION_READLN choices (input and description) for GUI
  • the installation will be paused and wait for manual user input
  • impossible to save such mod configuration so every installation, user need to repeat providing manual input
  • player choices are also not included inside the weidu installation log so debug information is lost
  • impossible to use weidu LABEL and other functions
  • player complains: "I cannot select/save Worldmap mod choices and the installation is paused!"

Calling "Rise Dead" for selected Modders who have used ACTION_READLN:
@Tash
@Wisp
@Pecca
@argent77
@jastey
@berelinde
@Ulb
@LavaDelVortel

If you are interested in how to remove ACTION_READLN from your mods In order to not duplicate discussion, please go to https://www.gibberlings3.net/forums/topic/29708-action_readln-replacement-examples/, read proposed solutions and if possible, provide feedback. Please keep in mind that none of the proposed solutions are "BWS-Exclusive" etc

If you don't have an account at G3, you can provide feedback here.
Post edited by ALIEN on

Comments

  • jasteyjastey Member Posts: 2,780
    edited October 2018
    @AstroBryGuy I'd be interested in what you'd do for the lovetalk timers in bg1npc instead. I guess I could switch to that for Ajantis BGII, too.

    ALIEN: Do you have a list for berelinde's mods in question? EDIT: As far as I see it's Gavin BG1, Gavin BGII, Keldorn Romance.

    EDIT2: Ascalon's Breagar, too.
  • [Deleted User][Deleted User] Posts: 0
    edited October 2018
    The user and all related content has been deleted.
  • jasteyjastey Member Posts: 2,780
    Oh, I don't think it will be difficult to implement something of the sort. It's a choice of I think 5 different timers currently, anyway. I'm just lazy and hoped that I can just copy AstroBryGuy's way of doing it. (Especially since I'd have do it to 5 NPC mods, minimum)
  • AstroBryGuyAstroBryGuy Member Posts: 3,437
    edited October 2018
    For BG1NPC v24 (soon!), I am using a lazy version of encapsulation, moving the WeiDU code for the romance to .tpa file that BG1NPC calls with an INCLUDE statement.

    Here's a code snippet for the Ajantis Romance in BG1NPC. The WeiDU code for the romance is in bg1npc_ajrom.tpa (pretty much unchanged, except for removing the READLN code).

    /* AJANTIS ROMANCE */ BEGIN @1109 DESIGNATED 20 /* Speed: 1 hour real time (standard) minimum between LoveTalks */ SUBCOMPONENT @1016 /* The BG1 NPC Project: Ajantis Romance Core (teen content) */ GROUP @1010 /* The BG1 NPC Project: Romances */ REQUIRE_COMPONENT ~bg1npc/bg1npc.tp2~ 0 @1004 /* BG1 NPC Required Changes component is not installed. */ COPY ~bg1npc/Core/X#component.xx~ ~override/X#AjantisRomance.G3~ UNINSTALL ~bg1npc.tp2~ 200 /* makes sure PIDs go last */ APPEND ~gtimes.ids~ ~3600 AJROM_TIMER~ UNLESS ~AJROM_TIMER~ INCLUDE ~bg1npc/romances/ajrom/tpa/bg1npc_ajrom.tpa~ BEGIN @1110 DESIGNATED 21 /* Speed: 45 minutes real time minimum between LoveTalks */ SUBCOMPONENT @1016 /* The BG1 NPC Project: Ajantis Romance Core (teen content) */ GROUP @1010 /* The BG1 NPC Project: Romances */ REQUIRE_COMPONENT ~bg1npc/bg1npc.tp2~ 0 @1004 /* BG1 NPC Required Changes component is not installed. */ COPY ~bg1npc/Core/X#component.xx~ ~override/X#AjantisRomance.G3~ UNINSTALL ~bg1npc.tp2~ 200 /* makes sure PIDs go last */ APPEND ~gtimes.ids~ ~2700 AJROM_TIMER~ UNLESS ~AJROM_TIMER~ INCLUDE ~bg1npc/romances/ajrom/tpa/bg1npc_ajrom.tpa~
Sign In or Register to comment.