Reason for the changes: viewtopic.php?t=79997 further exemplified by Player701 below
m8f's fixed Gearbox mod: Release page on GitHub forum thread: viewtopic.php?t=71086
Player 701's fix for the PDA code: viewtopic.php?p=1257238#p1257238 forum thread for the original PDA kit viewtopic.php?t=65849
Thank you to those who provided insight and explanations, and for providing what I needed (and what others will need) to get things working again. ]
Original Post...
Spoiler:
I have just downloaded and installed 4.14.0 and when I start the game, I get some ZScript errors with some mods I've been using. It concerns two mods in particular: Nash's PDA handler and m8f's Weapons Gearbox. Both are possibly older versions of these mods, because they have been in use on my HD for years now. I have modified the files, but I'm pretty sure that I have not modified anything in these particular areas.
Like I said, these have been working for years - right up to version 4.13.2, but they have broken under 4.14.0. The game refuses to start and gives me the error messages listed in red below.
I'm assuming it's something that needs to be fixed in the scripts, rather than the engine, so I'm posting here rather than in the bugs forum.
Unfortunately, the errors really don't mean much to me, so any help unpicking them would be appreciated.
I added the line numbers myself. They're not in the code. The relevant files are also attached. [Removed because they are no longer needed.]
Errors with the PDA handler
LoadActors: Load actor definitions.
GScript error, "00BaseControlText.pk3:zscript/pda/pdamenuhandler.zc" line 112:
GCannot convert Pointer<Class<PDAColoredButton>> to Pointer<Class<PDAOwnedPDAButton>>
GScript error, "00BaseControlText.pk3:zscript/pda/pdamenuhandler.zc" line 113:
GUnknown identifier 'Index'
Code: Select all
111 // Update current selection 112 int index = menu.pdaList.items.Find(PDAColoredButton(caller)); 113 menu.pdaList.currentSelection = index; 114 menu.pdaList.UpdateSelection();
Errors with the Gearbox
GScript error, "ZZGearBox.pk3:zscript/gearbox/weapon_menu.zs" line 279:
GCannot convert SInt4 to TextureID
GScript error, "ZZGearBox.pk3:zscript/gearbox/weapon_menu.zs" line 301:
GCannot convert SInt4 to TextureID
Code: Select all
264 private ui 265 void fillDirect(out gb_ViewModel viewModel) 266 { 267 uint nWeapons = mWeapons.size(); 268 for (uint i = 0; i < nWeapons; ++i) 269 { 270 let aWeapon = Weapon(players[consolePlayer].mo.findInventory(mWeapons[i])); 271 272 if (aWeapon == NULL) 273 { 274 if (mOptions.isPositionLocked()) 275 { 276 viewModel.tags .push(""); 277 viewModel.slots .push(mSlots[i]); 278 viewModel.indices .push(i); 279 viewModel.icons .push(-1); 280 viewModel.iconScaleXs .push(-1); 281 viewModel.iconScaleYs .push(-1); 282 viewModel.quantity1 .push(-1); 283 viewModel.maxQuantity1.push(-1); 284 viewModel.quantity2 .push(-1); 285 viewModel.maxQuantity2.push(-1); 286 } 287 continue; 288 } 289 290 if (isHidden(aWeapon.getClassName())) continue; 291 292 if (mSelectedIndex == i) viewModel.selectedIndex = viewModel.tags.size(); 293 294 viewModel.tags.push(aWeapon.getTag()); 295 viewModel.slots.push(mSlots[i]); 296 viewModel.indices.push(i); 297 298 TextureID icon = getIconFor(aWeapon); 299 300 // Workaround, casting TextureID to int may be unreliable. 301 viewModel.icons.push(int(icon)); 302 viewModel.iconScaleXs.push(aWeapon.scale.x); 303 viewModel.iconScaleYs.push(aWeapon.scale.y); 304 305 bool hasAmmo1 = aWeapon.ammo1; 306 bool hasAmmo2 = aWeapon.ammo2 && aWeapon.ammo2 != aWeapon.ammo1; 307 308 viewModel. quantity1.push(hasAmmo1 ? aWeapon.ammo1. amount : -1); 309 viewModel.maxQuantity1.push(hasAmmo1 ? aWeapon.ammo1.maxAmount : -1); 310 viewModel. quantity2.push(hasAmmo2 ? aWeapon.ammo2. amount : -1); 311 viewModel.maxQuantity2.push(hasAmmo2 ? aWeapon.ammo2.maxAmount : -1); 312 } 313 }
GScript error, "ZZGearBox.pk3:zscript/gearbox/inventory_menu.zs" line 98:
GCannot convert SInt4 to TextureID
Code: Select all
91 if (item.bInvBar) 92 { 93 string tag = item.getTag(); 94 int icon = int(BaseStatusBar.getInventoryIcon(item, BaseStatusBar.DI_ALTICONFIRST)); 95 viewModel.tags .push(tag); 96 viewModel.slots .push(index + 1); 97 viewModel.indices .push(index); 98 viewModel.icons .push(icon); 99 viewModel.iconScaleXs .push(1); 100 viewModel.iconScaleYs .push(1); 101 viewModel.quantity1 .push(item.maxAmount > 1 ? item.amount : -1); 102 viewModel.maxQuantity1.push(item.maxAmount); 103 viewModel.quantity2 .push(-1); 104 viewModel.maxQuantity2.push(-1); 105 106 ++index; 107 }