Cellprocesses Posted July 17 Posted July 17 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.
Circa Posted July 17 Posted July 17 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.
Cellprocesses Posted July 20 Author Posted July 20 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.
Cellprocesses Posted July 20 Author Posted July 20 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__
mrwonko Posted July 22 Posted July 22 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.
KyleFan Posted July 22 Posted July 22 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.
undeadslayer Posted July 25 Posted July 25 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.
KyleFan Posted August 4 Posted August 4 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.
undeadslayer Posted August 4 Posted August 4 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.
KyleFan Posted August 11 Posted August 11 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.
undeadslayer Posted August 11 Posted August 11 @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.
KyleFan Posted August 12 Posted August 12 @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.
Cellprocesses Posted August 17 Author Posted August 17 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
mrwonko Posted August 19 Posted August 19 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.
Cellprocesses Posted August 19 Author Posted August 19 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?
mrwonko Posted August 19 Posted August 19 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
Cellprocesses Posted August 26 Author Posted August 26 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 ..
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now