Jump to content

Is it possible to adjust weapons behaviour in a mod?


Recommended Posts

Posted

Hey all.

A few years ago I played around with making Jedi Academy SP a bit better by adjusting some of the wonky aspects of the base games values for NPC health (made NPCs 100 health same as the player), weapon bolt speed (I sped up the speed for things like the E-11 fire as I find it comically slow and not in line with the movies, weapon fire damage, and the spread of weapons fire (ie making the E-11 have a very inaccurate fire when in full auto secondary fire, etc. As I recall the final experience was a lot better, it actually made playing parts of the game on blasters a necessity just like Dark Forces, instead of just using the lightsaber everywhere.

Anyways I seem to recall I originally modified those speed and damage values by directly editing some file in the source code and recompiling, but Ive long since forgotten which parts of the source to change to get that effect. I vaguely recall somebody on JKHub telling me back then I could accomplish the same thing by putting the right config file in an apk, but I dont know what folder structure and/or content for the file I will need.

If anybody can point me to the correct part of the source to play with these values again it would also be greatly appreciated.

Posted

Some of that can be edited without bothering with the source code, look in the ext_data folder for weapons.dat. NPC attributes can be found in the .npc files in the npcs folder, sabers in the sabers folder.

Where to change things in the source code, I'll leave someone else to respond with that as I have no idea.

Posted

Did some research into this, was able to find the location for the weapons configuration is in /code/game/weapons.h. Most weapons values are defined in there as numeric constants.

I believe the breakdown goes like this:

defined in weapons.dat in a PK3 under ext_data folder:
-weapon model, icon, which class it ties to, the functions used for effects, etc, etc.
-what type of ammo it fires
-how much ammo each shot uses
-shot range (not sure what exactly this indicates as I cant ever remember a scenario where range mattered in openjk (it just winks out of existence after so many metres?)
-I believe firetime indicates the cooldown between shots in milliseconds possibly?

defined in weapons.h in the source:

-how much damage a blast does

-how fast the blaster bolt travels
-the weapons spread, ie how accurate it is, how tight of a grouping you can make shooting at a target at a range
-how fast some of the altfire modes for the pistol, bowcaster, sniper rifle, etc. take to charge, although this has to be edited in multiple files of the source code to work right
-detonation timer for things like the thermal detonator
-how much damage and splash distance various explodey weapons do


 

A question for the OpenJK team, could it be/is it already implemented that the constants defined in weapons.h could be electively loaded from weapons.dat or some other file? Things like weapons speed and damage could load from config file without completely breaking compatibility with the original binaries. (it would just mean making some mods that are openjk compatible but not with the original game.)

My suspicion is the only reason it wasnt done that way when the game released back in 2003 was time pressure on release, otherwise it makes perfect sense to have all weapons values load from weapons.dat for tweaking the game while playtesting.

Posted

For fun, the changes I made this time around in weapons.h

 

/*
===========================================================================
Copyright (C) 1999 - 2005, Id Software, Inc.
Copyright (C) 2000 - 2013, Raven Software, Inc.
Copyright (C) 2001 - 2013, Activision, Inc.
Copyright (C) 2013 - 2015, OpenJK contributors

This file is part of the OpenJK source code.

OpenJK is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>.
===========================================================================
*/

// Filename:-	weapons.h
//
// Note that this is now included from both server and game modules, so don't include any other header files
//	within this one that might break stuff...

#ifndef __WEAPONS_H__
#define __WEAPONS_H__

#include "../qcommon/q_shared.h"

typedef enum //# weapon_e
{
	WP_NONE,

	// Player weapons
	WP_SABER,			// player and NPC weapon
	WP_BLASTER_PISTOL,	// player and NPC weapon
	WP_BLASTER,			// player and NPC weapon
	WP_DISRUPTOR,		// player and NPC weapon
	WP_BOWCASTER,		// NPC weapon - player can pick this up, but never starts with them
	WP_REPEATER,		// NPC weapon - player can pick this up, but never starts with them
	WP_DEMP2,			// NPC weapon - player can pick this up, but never starts with them
	WP_FLECHETTE,		// NPC weapon - player can pick this up, but never starts with them
	WP_ROCKET_LAUNCHER,	// NPC weapon - player can pick this up, but never starts with them
	WP_THERMAL,			// player and NPC weapon
	WP_TRIP_MINE,		// NPC weapon - player can pick this up, but never starts with them
	WP_DET_PACK,		// NPC weapon - player can pick this up, but never starts with them
	WP_CONCUSSION,		// NPC weapon - player can pick this up, but never starts with them

	//extras
	WP_MELEE,			// player and NPC weapon - Any ol' melee attack

	//when in atst
	WP_ATST_MAIN,
	WP_ATST_SIDE,

	// These can never be gotten directly by the player
	WP_STUN_BATON,		// stupid weapon, should remove

	//NPC weapons
	WP_BRYAR_PISTOL,	// NPC weapon - player can pick this up, but never starts with them

	WP_EMPLACED_GUN,

	WP_BOT_LASER,		// Probe droid	- Laser blast

	WP_TURRET,			// turret guns

	WP_TIE_FIGHTER,

	WP_RAPID_FIRE_CONC,

	WP_JAWA,
	WP_TUSKEN_RIFLE,
	WP_TUSKEN_STAFF,
	WP_SCEPTER,
	WP_NOGHRI_STICK,

	//# #eol
	WP_NUM_WEAPONS
} weapon_t;

#define FIRST_WEAPON		WP_SABER		// this is the first weapon for next and prev weapon switching
#define MAX_PLAYER_WEAPONS	WP_STUN_BATON	// this is the max you can switch to and get with the give all. - FIXME: it's actually this one *minus* one... why?

// AMMO_NONE must be first and AMMO_MAX must be last, cause weapon load validates based off of these vals
typedef enum //# ammo_e
{
	AMMO_NONE,
	AMMO_FORCE,		// AMMO_PHASER
	AMMO_BLASTER,	// AMMO_STARFLEET,
	AMMO_POWERCELL,	// AMMO_ALIEN,
	AMMO_METAL_BOLTS,
	AMMO_ROCKETS,
	AMMO_EMPLACED,
	AMMO_THERMAL,
	AMMO_TRIPMINE,
	AMMO_DETPACK,
	AMMO_MAX
} ammo_t;


typedef struct weaponData_s
{
	char	classname[32];		// Spawning name
	char	weaponMdl[64];		// Weapon Model
	char	firingSnd[64];		// Sound made when fired
	char	altFiringSnd[64];	// Sound made when alt-fired
//	char	flashSnd[64];		// Sound made by flash
//	char	altFlashSnd[64];	// Sound made by an alt-flash
	char	stopSnd[64];		// Sound made when weapon stops firing
	char	chargeSnd[64];		// sound to start when the weapon initiates the charging sequence
	char	altChargeSnd[64];	// alt sound to start when the weapon initiates the charging sequence
	char	selectSnd[64];		// the sound to play when this weapon gets selected

	int		ammoIndex;			// Index to proper ammo slot
	int		ammoLow;			// Count when ammo is low

	int		energyPerShot;		// Amount of energy used per shot
	int		fireTime;			// Amount of time between firings
	int		range;				// Range of weapon

	int		altEnergyPerShot;	// Amount of energy used for alt-fire
	int		altFireTime;		// Amount of time between alt-firings
	int		altRange;			// Range of alt-fire

	char	weaponIcon[64];		// Name of weapon icon file
	int		numBarrels;			// how many barrels should we expect for this weapon?

	char	missileMdl[64];		// Missile Model
	char	missileSound[64];	// Missile flight sound
	float  	missileDlight;		// what is says
	vec3_t 	missileDlightColor;	// ditto

	char	alt_missileMdl[64];		// Missile Model
	char	alt_missileSound[64];	// Missile sound
	float  	alt_missileDlight;		// what is says
	vec3_t 	alt_missileDlightColor;	// ditto

	char	missileHitSound[64];	// Missile impact sound
	char	altmissileHitSound[64];	// alt Missile impact sound
	void	*func;
	void	*altfunc;

	char	mMuzzleEffect[64];
	int		mMuzzleEffectID;
	char	mAltMuzzleEffect[64];
	int		mAltMuzzleEffectID;

	int		damage;
	int		altDamage;
	int		splashDamage;
	int		altSplashDamage;
	float	splashRadius;
	float	altSplashRadius;

} weaponData_t;


typedef struct ammoData_s
{
	char	icon[64];	// Name of ammo icon file
	int		max;		// Max amount player can hold of ammo
} ammoData_t;

// Bryar Pistol
//--------
#define BRYAR_PISTOL_VEL			8800	// much faster to properly match what the movies look like
											// the player shouldnt be able to sidestep incoming stormtrooper fire
											// at a distance of say across a large room
#define BRYAR_PISTOL_DAMAGE			55		
#define BRYAR_CHARGE_UNIT			400.0f	// bryar charging gives us one more unit every 200ms--if you change this, you'll have to do the same in bg_pmove

// E11 Blaster
//---------
#define BLASTER_MAIN_SPREAD			1.4f
#define BLASTER_ALT_SPREAD			3.8f	// my fun theory for this goes like, on the death star in ANH, all of
											// teh stormtroopers had their blasters on full auto spraying at Luke & co
											// as fast as possible but their groupings were like
											// the size of a garage door, while Luke & co used the primary single
											// shot with half decent accuracy to actually hit something
											
											// and maybe now that the remnant is poor they have to conserve ammo by
											// sticking to single fire mode. 
#define BLASTER_NPC_SPREAD			1.4f
#define BLASTER_VELOCITY			8800
#define BLASTER_NPC_VEL_CUT			1.0f
#define BLASTER_NPC_HARD_VEL_CUT	1.0f
#define BLASTER_DAMAGE				55
#define	BLASTER_NPC_DAMAGE_EASY		55		// damage is much higher than the paltry 6/12/16 of the original game
#define	BLASTER_NPC_DAMAGE_NORMAL	55 		// the idea here which sort of matches the shows & films is 1 shot will
#define	BLASTER_NPC_DAMAGE_HARD		55 		// badly wound an unarmoured person, 2 will kill him, and 3 will kill
											// an armoured one
											
											// I think I tried higher damage values for this and it made stormtroopers
											// a bit too lethal

// Tenloss Disruptor
//----------
#define DISRUPTOR_MAIN_DAMAGE			24
#define DISRUPTOR_NPC_MAIN_DAMAGE_EASY	24
#define DISRUPTOR_NPC_MAIN_DAMAGE_MEDIUM	24
#define DISRUPTOR_NPC_MAIN_DAMAGE_HARD	24

#define DISRUPTOR_ALT_DAMAGE			99
#define DISRUPTOR_NPC_ALT_DAMAGE_EASY	99
#define DISRUPTOR_NPC_ALT_DAMAGE_MEDIUM	99
#define DISRUPTOR_NPC_ALT_DAMAGE_HARD	99
#define DISRUPTOR_ALT_TRACES			3		// can go through a max of 3 entities
#define DISRUPTOR_CHARGE_UNIT			150.0f	// distruptor charging gives us one more unit every 150ms--if you change this, you'll have to do the same in bg_pmove

// Wookie Bowcaster
//----------
#define	BOWCASTER_DAMAGE			67			// dunno what really to do with this one, it packs more punch than
#define	BOWCASTER_VELOCITY			6600		// blasters, but a bit slower
#define	BOWCASTER_NPC_DAMAGE_EASY	67
#define	BOWCASTER_NPC_DAMAGE_NORMAL	67
#define	BOWCASTER_NPC_DAMAGE_HARD	67
#define BOWCASTER_SPLASH_DAMAGE		0
#define BOWCASTER_SPLASH_RADIUS		0
#define BOWCASTER_SIZE				2

#define BOWCASTER_ALT_SPREAD		5.0f
#define BOWCASTER_VEL_RANGE			0.3f
#define BOWCASTER_CHARGE_UNIT		200.0f	// bowcaster charging gives us one more unit every 200ms--if you change this, you'll have to do the same in bg_pmove

// Heavy Repeater
//----------
#define REPEATER_SPREAD				1.3f
#define REPEATER_NPC_SPREAD			1.3f
#define	REPEATER_DAMAGE				22		// my personal headcanon for this is the DC-15 was chosen specifically
#define	REPEATER_VELOCITY			8800	// to kill separatist battle droids which are made of tinfoil and good
#define	REPEATER_NPC_DAMAGE_EASY	22		// intentions. So the deece has a high rate of fire, minimal damage
#define	REPEATER_NPC_DAMAGE_NORMAL	22		// but good accuracy
#define	REPEATER_NPC_DAMAGE_HARD	22

#define REPEATER_ALT_SIZE				3	// half of bbox size
#define	REPEATER_ALT_DAMAGE				105
#define REPEATER_ALT_SPLASH_DAMAGE		50
#define REPEATER_ALT_SPLASH_RADIUS		228
#define	REPEATER_ALT_VELOCITY			1100
#define	REPEATER_ALT_NPC_DAMAGE_EASY	105
#define	REPEATER_ALT_NPC_DAMAGE_NORMAL	105
#define	REPEATER_ALT_NPC_DAMAGE_HARD	105

// DEMP2
//----------
#define	DEMP2_DAMAGE				35
#define	DEMP2_VELOCITY				5800
#define	DEMP2_NPC_DAMAGE_EASY		35
#define	DEMP2_NPC_DAMAGE_NORMAL		35
#define	DEMP2_NPC_DAMAGE_HARD		35
#define	DEMP2_SIZE					2		// half of bbox size

#define DEMP2_ALT_DAMAGE			45
#define DEMP2_CHARGE_UNIT			500.0f	// demp2 charging gives us one more unit every 500ms--if you change this, you'll have to do the same in bg_pmove
#define DEMP2_ALT_RANGE				4096
#define DEMP2_ALT_SPLASHRADIUS		286

// Golan Arms Flechette
//---------
#define FLECHETTE_SHOTS				9		// After some tests I found that having 12 particles per shot was too much for my system, as soon as 
											// a full room of shotguns opens up the game slows to a crawl and often crashes
											
											// I cant say for sure but there may be an engine limit on blaster bolts active at one time
#define FLECHETTE_SPREAD			4.0f
#define FLECHETTE_DAMAGE			12
#define FLECHETTE_VEL				5500
#define FLECHETTE_SIZE				1

#define FLECHETTE_ALT_DAMAGE		40
#define FLECHETTE_ALT_SPLASH_DAM	20
#define FLECHETTE_ALT_SPLASH_RAD	168

// NOT CURRENTLY USED
#define FLECHETTE_MINE_RADIUS_CHECK		200
#define FLECHETTE_MINE_VEL				1000
#define FLECHETTE_MINE_DAMAGE			100
#define FLECHETTE_MINE_SPLASH_DAMAGE	200
#define FLECHETTE_MINE_SPLASH_RADIUS	200

// Personal Rocket Launcher
//---------
#define	ROCKET_VELOCITY				650		// actually much slower than vanilla, we will see, but I felt rockets
#define	ROCKET_DAMAGE				130		// were too fast to easily force push back in vanilla
#define	ROCKET_SPLASH_DAMAGE		80		// a general theme with my changes here, I felt like splash damage for 
#define	ROCKET_SPLASH_RADIUS		260		// explodey weapons was too low in vanilla, so its been turned up for
#define ROCKET_NPC_DAMAGE_EASY		130		// this, TDs, concussion, etc.
#define ROCKET_NPC_DAMAGE_NORMAL	130
#define ROCKET_NPC_DAMAGE_HARD		130
#define ROCKET_SIZE					3

#define	ROCKET_ALT_VELOCITY			(ROCKET_VELOCITY*0.5)
#define ROCKET_ALT_THINK_TIME		100

// Concussion Rifle
//---------
//primary
#define	CONC_VELOCITY				9000
#define	CONC_DAMAGE					120
#define CONC_NPC_SPREAD				1.0f
#define	CONC_NPC_DAMAGE_EASY		120
#define	CONC_NPC_DAMAGE_NORMAL		120
#define	CONC_NPC_DAMAGE_HARD		120
#define	CONC_SPLASH_DAMAGE			50
#define	CONC_SPLASH_RADIUS			250
//alt
#define CONC_ALT_DAMAGE				90//100
#define CONC_ALT_NPC_DAMAGE_EASY	90
#define CONC_ALT_NPC_DAMAGE_MEDIUM	90
#define CONC_ALT_NPC_DAMAGE_HARD	90

// Emplaced Gun
//--------------
#define EMPLACED_VEL				8000	// very fast
#define EMPLACED_DAMAGE				150		// and very damaging
#define EMPLACED_SIZE				5		// make it easier to hit things

// ATST Main Gun
//--------------
#define ATST_MAIN_VEL				7000	//
#define ATST_MAIN_DAMAGE			125		//
#define ATST_MAIN_SIZE				3		// make it easier to hit things

// ATST Side Gun
//---------------
#define ATST_SIDE_MAIN_DAMAGE				75
#define ATST_SIDE_MAIN_VELOCITY				6300
#define ATST_SIDE_MAIN_NPC_DAMAGE_EASY		75
#define ATST_SIDE_MAIN_NPC_DAMAGE_NORMAL	75
#define ATST_SIDE_MAIN_NPC_DAMAGE_HARD		75
#define ATST_SIDE_MAIN_SIZE					4
#define ATST_SIDE_MAIN_SPLASH_DAMAGE		10	// yeah, pretty small, either zero out or make it worth having?
#define ATST_SIDE_MAIN_SPLASH_RADIUS		16	// yeah, pretty small, either zero out or make it worth having?

#define ATST_SIDE_ALT_VELOCITY				1100
#define ATST_SIDE_ALT_NPC_VELOCITY			600
#define ATST_SIDE_ALT_DAMAGE				130

#define ATST_SIDE_ROCKET_NPC_DAMAGE_EASY	30
#define ATST_SIDE_ROCKET_NPC_DAMAGE_NORMAL	50
#define ATST_SIDE_ROCKET_NPC_DAMAGE_HARD	90

#define	ATST_SIDE_ALT_SPLASH_DAMAGE			130
#define	ATST_SIDE_ALT_SPLASH_RADIUS			200
#define ATST_SIDE_ALT_ROCKET_SIZE			5
#define ATST_SIDE_ALT_ROCKET_SPLASH_SCALE	0.5f	// scales splash for NPC's

// Stun Baton
//--------------
#define STUN_BATON_DAMAGE			22
#define STUN_BATON_ALT_DAMAGE		22
#define STUN_BATON_RANGE			25

// Laser Trip Mine
//--------------
#define LT_DAMAGE			150
#define LT_SPLASH_RAD		256.0f
#define LT_SPLASH_DAM		90

#define LT_VELOCITY			250.0f
#define LT_ALT_VELOCITY		1000.0f

#define PROX_MINE_RADIUS_CHECK		190

#define LT_SIZE				3.0f
#define LT_ALT_TIME			2000
#define	LT_ACTIVATION_DELAY	1000
#define	LT_DELAY_TIME		50

// Thermal Detonator
//--------------
#define TD_DAMAGE			105		// in universe, getting hit with a TD blast without wearing armour is instant kill
#define TD_NPC_DAMAGE_CUT	1.0f	
#define TD_SPLASH_RAD		188
#define TD_SPLASH_DAM		72
#define TD_VELOCITY			900
#define TD_MIN_CHARGE		0.15f
#define TD_TIME				6500	// increased to make this a bit more interesting. Might actually be able to force push them away like this
#define TD_THINK_TIME		300		// don't think too often?
#define TD_TEST_RAD			(TD_SPLASH_RAD * 0.8f) // no sense in auto-blowing up if exactly on the radius edge--it would hardly do any damage
#define TD_ALT_TIME			3000

#define TD_ALT_DAMAGE		105		// exact same stats as regular, just it blows up on contact instead
#define TD_ALT_SPLASH_RAD	188
#define TD_ALT_SPLASH_DAM	72
#define TD_ALT_VELOCITY		600
#define TD_ALT_MIN_CHARGE	0.15f
#define TD_ALT_TIME			3000

// Tusken Rifle Shot
//--------------
#define TUSKEN_RIFLE_VEL			6900	
#define TUSKEN_RIFLE_DAMAGE_EASY	70		// damaging
#define TUSKEN_RIFLE_DAMAGE_MEDIUM	70		// very damaging
#define TUSKEN_RIFLE_DAMAGE_HARD	70		// extremely damaging


#endif//#ifndef __WEAPONS_H__

 

Posted
Quote

A question for the OpenJK team, could it be/is it already implemented that the constants defined in weapons.h could be electively loaded from weapons.dat or some other file?

It could be implemented, but it's probably outside the scope of the OpenJK project. I think some multiplayer mods like Jedi Knight Galaxies have explored the idea before, but I'm not aware of anything for singleplayer.

Posted

Hey, sorry for dropping in with a question, but does this mean that it would be possible to modify the thermal detonators to disintegrate enemies like the disruptors do? That would be an old dream of mine coming true. Nar Shaddaa in JO would be hell, but seeing how people reacted to TDs in ROTJ at Jabba's Palace, I was always disappointed by their effect in the game.

Posted
Quote

Hey, sorry for dropping in with a question, but does this mean that it would be possible to modify the thermal detonators to disintegrate enemies like the disruptors do? 

I can confirm it is possible to change the effects of a weapon by changing the code in the weapons data file. I tested this with the disruptor/concusion rifle for the Dark Forces mod.

  • 2 weeks later...
Posted

That is great to hear! How difficult is it to change the code though? I admit I'm a little afraid of messing around with it, I don't want to break the game. 😅

Posted
Quote

That is great to hear! How difficult is it to change the code though? I admit I'm a little afraid of messing around with it, I don't want to break the game. 😅

It's not that difficult. Make sure you make a backup of weapon data file in case of that problem. I got the code right here, just take out the existing TD code out and put this one in:

// WP_THERMAL
{
weapontype       WP_THERMAL
weaponclass      weapon_thermal
weaponmodel      models/weapons2/thermal/thermal.md3
weaponIcon       gfx/hud/w_icon_thermal
ammotype         3
ammolowcount     1
energypershot    3
firetime         600
range            8192
altenergypershot 3
altfiretime      800
altrange         8192
missileModel     models/weapons2/thermal/thermal_proj.md3
altmissileModel  models/weapons2/thermal/thermal_proj.md3
barrelcount      0
chargesound        sound/weapons/thermal/charge.wav
chargeforce        fffx/weapons/thermal/charge
altchargesound    sound/weapons/thermal/charge.wav
altchargeforce    fffx/weapons/disruptor/altcharge
selectSound            sound/weapons/thermal/select.wav
selectforce        fffx/weapons/thermal/select
muzzleEffect        thermal/muzzle_flash
}

Hope this works.🙂

Posted

Thanks, @undeadslayer. I tried it but nothing changed though. Perhaps because the disruptor and the concussion rifle are both blaster type weapons while TDs are throwable type. That's why I thought that one would need to mess around with the game's coding itself, like the weapons.h file Cellprocesses posted earlier.

Posted

@KyleFan Sorry it didn't work hopefully you made a backup of the wepon data file. You are probably right in the game's coding needs to be changed, I think OpenJK will allow you to look at the coding itself. If manage to figure this out, please let me know and Good luck.🙂

Posted

@undeadslayer No worries. Thanks... I think I'm gonna need that luck. 😆 I'll let you know if I figured it out. I started reading some tutorials about coding on here, but it's quite overwhelming. 😬

Posted

Sorry for the very slow response on this.

One unfortunate note, you can change the blaster bolt velocities and damage in the source, but it causes stability issues, the one error that constantly causes crashes is the assertion in the qmath random number generator:

 

// Returns an integer min <= x <= max (ie inclusive)
int irand( int min, int max )
{
	int	result;
	
	assert((max - min) < 8*QRAND_MAX);

	max++;
	holdrand = (holdrand * 214013L) + 2531011L;
	result = holdrand >> 17;
	result = ((result * (max - min)) >> 15) + min;

	return result;
}


I believe theres a min/max restriction of something like 32768 for the limits of the int datatype? and for some reason upping blaster bolt speed constantly causes random number requests that exceed that limit?

Oddly enough, my kludge above seems to solve most of the issues, is it possible that the original code was thinking of the data limits under 32 bit which was the norm in 2003, and now 64 bit machines have a much larger range for the int datatype so it doesnt exceed the data limits of int in a 64 bit environment?

The assertion error also sometimes crashes for other odd things like tavions ground slam attack so it could be inherent in the code, or maybe the changes do affect stability

Posted
Quote

The assertion error also sometimes crashes for other odd things like tavions ground slam attack so it could be inherent in the code

There are a lot of assertions that you can run into when running a debug build. If it's a new one caused by something you added, it's worth understanding why, but don't worry too much about the ones that already trigger. Just do a release build and they'll be ignored, that's how Raven "solved" the issue, too.

Posted
2 hours ago, mrwonko said:

There are a lot of assertions that you can run into when running a debug build. If it's a new one caused by something you added, it's worth understanding why, but don't worry too much about the ones that already trigger. Just do a release build and they'll be ignored, that's how Raven "solved" the issue, too.

How do you do a release build? Is it some flag I havent set right in make?

Posted

If you're on Windows using Visual Studio, there's a dropdown to select the type of build to perform, I think typically in the top bar. If you're on Linux/Mac using make, I don't know.

Cellprocesses likes this
Posted
On 8/19/2024 at 9:32 PM, mrwonko said:

If you're on Windows using Visual Studio, there's a dropdown to select the type of build to perform, I think typically in the top bar. If you're on Linux/Mac using make, I don't know.

Did some digging, it appears to work if I run cmake as

 

cmake -DCMAKE_C_FLAGS=-DNDEBUG -DCMAKE_INSTALL_PREFIX=/home/user/app/openjk ..

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...