mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-07 22:56:30 -10:00
Compare commits
165
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c5a72a5d3 | ||
|
|
e1591a7be1 | ||
|
|
e64299e533 | ||
|
|
fa3506f5a5 | ||
|
|
bd200d631d | ||
|
|
225c5ccd90 | ||
|
|
2958cb7ece | ||
|
|
affd2a40c6 | ||
|
|
591026084d | ||
|
|
acf1f160d9 | ||
|
|
7ec3d3f1ad | ||
|
|
6ea9d8d1f0 | ||
|
|
758514af77 | ||
|
|
d178d36ad2 | ||
|
|
4e0cb1f5f5 | ||
|
|
4b06b9730c | ||
|
|
6858371ebc | ||
|
|
f28082d241 | ||
|
|
1c500458fa | ||
|
|
876360c5fb | ||
|
|
489867c0dd | ||
|
|
32dee2889a | ||
|
|
52c537d7b8 | ||
|
|
90c868b8f5 | ||
|
|
9b590d6f2c | ||
|
|
e69e050412 | ||
|
|
880a2cbf26 | ||
|
|
8b55964a5c | ||
|
|
10b6640afd | ||
|
|
ba057dc137 | ||
|
|
eaafbabdaf | ||
|
|
3a3ca4e206 | ||
|
|
07a7ad3461 | ||
|
|
da166f35ba | ||
|
|
f73b142071 | ||
|
|
ce5bd90a7f | ||
|
|
1f7203ec0f | ||
|
|
c6fe99a1cc | ||
|
|
60d8ded285 | ||
|
|
5f6089df4f | ||
|
|
c2ab1f4edb | ||
|
|
3681add767 | ||
|
|
32d1af2c71 | ||
|
|
66fb035b2c | ||
|
|
a667d1f635 | ||
|
|
8f3cc556b7 | ||
|
|
b8b652874c | ||
|
|
87ed7e8d87 | ||
|
|
6f262613af | ||
|
|
245c32285d | ||
|
|
998c530ed0 | ||
|
|
ab44765c0d | ||
|
|
707ce957ef | ||
|
|
58185d11f4 | ||
|
|
7dfc7bef68 | ||
|
|
835e05c771 | ||
|
|
dbde386299 | ||
|
|
ee6e5aabd7 | ||
|
|
542f20bec1 | ||
|
|
8b68aa537b | ||
|
|
6c4ad6aac9 | ||
|
|
3e66436edf | ||
|
|
a8fe0f5b61 | ||
|
|
eca8d4f2cb | ||
|
|
0a69cc3cf2 | ||
|
|
55f1ed93d2 | ||
|
|
ed365d1349 | ||
|
|
be2f628ac3 | ||
|
|
4d0274b196 | ||
|
|
16e32a0d45 | ||
|
|
c85ef1f429 | ||
|
|
312a601ac6 | ||
|
|
70d5c7998c | ||
|
|
bec99b27f1 | ||
|
|
d3d8d82e31 | ||
|
|
f1495861b9 | ||
|
|
987abad6db | ||
|
|
869c021453 | ||
|
|
df5746b329 | ||
|
|
8209273f8c | ||
|
|
c14a37a826 | ||
|
|
308acbe7aa | ||
|
|
614d83ff4e | ||
|
|
9de34836d0 | ||
|
|
1b224c1361 | ||
|
|
6cccc502a1 | ||
|
|
83a191828a | ||
|
|
67026a1066 | ||
|
|
b24b08d168 | ||
|
|
54b21407f9 | ||
|
|
3225f25150 | ||
|
|
55aca9510d | ||
|
|
1374b52ef4 | ||
|
|
ecf99de11b | ||
|
|
af5b6a8c66 | ||
|
|
356cddb4ea | ||
|
|
14380d293e | ||
|
|
2ef033dcdd | ||
|
|
8255871336 | ||
|
|
671f73e9c4 | ||
|
|
0425f704fa | ||
|
|
a734cd64cf | ||
|
|
7645062496 | ||
|
|
9a1b674fce | ||
|
|
47b7077520 | ||
|
|
0a64aee4a5 | ||
|
|
b5447a8c1f | ||
|
|
ecceae93ae | ||
|
|
0cfe277247 | ||
|
|
eaa5fd636b | ||
|
|
693cd4f529 | ||
|
|
7b699aa196 | ||
|
|
1e351eeaf5 | ||
|
|
c555ae6dd7 | ||
|
|
45e81ae0a2 | ||
|
|
3336072f1c | ||
|
|
af8a5f6de2 | ||
|
|
2e219e9966 | ||
|
|
8992977832 | ||
|
|
134d7d311d | ||
|
|
eeb2cf35c9 | ||
|
|
1e3d2a91dc | ||
|
|
dfc6435268 | ||
|
|
d5d8ad17f7 | ||
|
|
e95554f27a | ||
|
|
b8defa5eec | ||
|
|
536e3866ef | ||
|
|
41872f2648 | ||
|
|
1e26052d19 | ||
|
|
6a41b039fc | ||
|
|
f4eb09eb21 | ||
|
|
948e778975 | ||
|
|
5060c02d95 | ||
|
|
cd5a95a88e | ||
|
|
ccab33c02a | ||
|
|
7c731f03fe | ||
|
|
922f8e7630 | ||
|
|
d528508ebf | ||
|
|
8c021f0503 | ||
|
|
a463d9a58d | ||
|
|
3daa7f58d4 | ||
|
|
d6f3811cf7 | ||
|
|
797dadc1d7 | ||
|
|
1262cc08c7 | ||
|
|
8b42ed0824 | ||
|
|
f69f70def8 | ||
|
|
5317c13304 | ||
|
|
7ca10c9b5e | ||
|
|
139f60e0d4 | ||
|
|
c71da021ce | ||
|
|
ceea0202b3 | ||
|
|
53b8bd1797 | ||
|
|
faef780270 | ||
|
|
58a04d32f5 | ||
|
|
356d18246e | ||
|
|
8f5b27873f | ||
|
|
6717395b54 | ||
|
|
32157fbe57 | ||
|
|
561e50e860 | ||
|
|
9f22090ce9 | ||
|
|
858dc8dedd | ||
|
|
4a7f059119 | ||
|
|
393a5ae1a2 | ||
|
|
0cc3dc9c13 | ||
|
|
1993f8bed7 |
No files matched your search
@@ -465,6 +465,15 @@ void parse_ai_profiles_tbl(const char *filename)
|
||||
|
||||
set_flag(profile, "$strict turret-tagged-only targeting:", AIPF2_STRICT_TURRET_TAGGED_ONLY_TARGETING, AIP_FLAG2);
|
||||
|
||||
profile->bay_arrive_speed_mult = 1.0f;
|
||||
profile->bay_depart_speed_mult = 1.0f;
|
||||
if (optional_string("$bay arrive start speed multiplier:")) {
|
||||
stuff_float(&profile->bay_arrive_speed_mult);
|
||||
}
|
||||
if (optional_string("$bay depart end speed multiplier:")) {
|
||||
stuff_float(&profile->bay_depart_speed_mult);
|
||||
}
|
||||
|
||||
// ----------
|
||||
|
||||
// compatibility
|
||||
|
||||
@@ -151,6 +151,11 @@ typedef struct ai_profile_t {
|
||||
|
||||
int ai_path_mode;
|
||||
|
||||
// Ships flying bay paths will gradually accelerate/decelerate instead of
|
||||
// flying the whole path at max speed
|
||||
float bay_arrive_speed_mult;
|
||||
float bay_depart_speed_mult;
|
||||
|
||||
} ai_profile_t;
|
||||
|
||||
|
||||
|
||||
+48
-2
@@ -4010,11 +4010,57 @@ float ai_path_1()
|
||||
dot_to_next = vm_vec_dot_to_point(&nvel_vec, &Pl_objp->pos, &gnvp);
|
||||
|
||||
// This path mode respects the "cap-waypoint-speed" SEXP
|
||||
float max_allowed_speed = 0;
|
||||
float max_allowed_speed = 0.0f;
|
||||
if ( aip->waypoint_speed_cap > 0) {
|
||||
max_allowed_speed = (float) aip->waypoint_speed_cap;
|
||||
}
|
||||
|
||||
// Maybe gradually ramp up/down the speed of a ship flying a fighterbay path
|
||||
if (aip->mode == AIM_BAY_EMERGE || (aip->mode == AIM_BAY_DEPART && aip->path_cur != aip->path_start)) {
|
||||
SCP_string pathName(pm->paths[Path_points[aip->path_start].path_num].name);
|
||||
ship_info *gsip = &Ship_info[gshipp->ship_info_index];
|
||||
float speed_mult = 1.0f;
|
||||
|
||||
if (aip->mode == AIM_BAY_EMERGE) { // Arriving
|
||||
if (gsip->pathMetadata.find(pathName) != gsip->pathMetadata.end()) {
|
||||
speed_mult = gsip->pathMetadata[pathName].arrive_speed_mult;
|
||||
}
|
||||
|
||||
if (speed_mult == FLT_MIN) {
|
||||
speed_mult = The_mission.ai_profile->bay_arrive_speed_mult;
|
||||
}
|
||||
} else { // Departing
|
||||
if (gsip->pathMetadata.find(pathName) != gsip->pathMetadata.end()) {
|
||||
speed_mult = gsip->pathMetadata[pathName].depart_speed_mult;
|
||||
}
|
||||
|
||||
if (speed_mult == FLT_MIN) {
|
||||
speed_mult = The_mission.ai_profile->bay_depart_speed_mult;
|
||||
}
|
||||
}
|
||||
|
||||
if (speed_mult != 1.0f) {
|
||||
// We use the distance between the first and last point on the path here; it's not accurate
|
||||
// if the path is not straight, but should be good enough usually; can be changed if necessary.
|
||||
float total_path_length = vm_vec_dist_quick(&Path_points[aip->path_start].pos, &Path_points[aip->path_start + num_points - 1].pos);
|
||||
float dist_to_end;
|
||||
|
||||
if (aip->mode == AIM_BAY_EMERGE) { // Arriving
|
||||
dist_to_end = vm_vec_dist_quick(&Pl_objp->pos, &Path_points[aip->path_start].pos);
|
||||
} else { // Departing
|
||||
dist_to_end = vm_vec_dist_quick(&Pl_objp->pos, &Path_points[aip->path_start + num_points - 1].pos);
|
||||
}
|
||||
|
||||
// Calculate max speed, but respect the waypoint speed cap if it's lower
|
||||
float max_bay_speed = sip->max_speed * (speed_mult + (1.0f - speed_mult) * (dist_to_end / total_path_length));
|
||||
if (max_allowed_speed == 0.0f) {
|
||||
max_allowed_speed = max_bay_speed;
|
||||
} else {
|
||||
max_allowed_speed = MIN(max_allowed_speed, max_bay_speed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set_accel_for_docking(Pl_objp, aip, dot, dot_to_next, dist_to_next, dist_to_goal, sip, max_allowed_speed);
|
||||
aip->prev_dot_to_goal = dot;
|
||||
|
||||
@@ -7582,7 +7628,7 @@ void update_aspect_lock_information(ai_info *aip, vec3d *vec_to_enemy, float dis
|
||||
|
||||
wip = &Weapon_info[swp->secondary_bank_weapons[swp->current_secondary_bank]];
|
||||
|
||||
if (num_weapon_types && (wip->wi_flags & WIF_LOCKED_HOMING)) {
|
||||
if (num_weapon_types && (wip->wi_flags & WIF_LOCKED_HOMING) && !(shipp->flags2 & SF2_NO_SECONDARY_LOCKON)) {
|
||||
if (dist_to_enemy > 300.0f - MIN(enemy_radius, 100.0f))
|
||||
aip->ai_flags |= AIF_SEEK_LOCK;
|
||||
else
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (C) Volition, Inc. 1999. All rights reserved.
|
||||
*
|
||||
* All source code herein is the property of Volition, Inc. You may not sell
|
||||
* or otherwise commercially exploit the source or things you created based on the
|
||||
* source.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file bm_examples.cpp
|
||||
* This file contains example code for using bmpman.
|
||||
*/
|
||||
|
||||
#include "bmpman/bmpman.h"
|
||||
#include "graphics/2d.h"
|
||||
|
||||
void bm_create_example() {
|
||||
static int test_inited = 0;
|
||||
static int test_bmp;
|
||||
static uint test_bmp_data[128 * 64];
|
||||
|
||||
if (!test_inited) {
|
||||
test_inited = 1;
|
||||
// Create the new bitmap and fill in its data.
|
||||
// When you're done with it completely, call
|
||||
// bm_release to free up the bitmap handle
|
||||
test_bmp = bm_create(32, 128, 64, test_bmp_data);
|
||||
int i, j;
|
||||
for (i = 0; i < 64; i++) {
|
||||
for (j = 0; j < 64; j++) {
|
||||
uint r = i * 4;
|
||||
test_bmp_data[j + i * 128] = r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// page out the data, so that the next bm_lock will convert the new data to
|
||||
// the correct bpp
|
||||
bm_unload(test_bmp);
|
||||
|
||||
// put in new data
|
||||
int x, y;
|
||||
gr_reset_clip();
|
||||
for (y = 0; y < 64; y++) {
|
||||
for (x = 0; x < 128; x++) {
|
||||
test_bmp_data[y * 128 + x] = 15;
|
||||
}
|
||||
}
|
||||
|
||||
// Draw the bitmap, the upper left corner is the origin (0, 0)
|
||||
gr_set_bitmap(test_bmp);
|
||||
gr_bitmap(0, 0);
|
||||
}
|
||||
+78
-81
@@ -1,121 +1,120 @@
|
||||
/*
|
||||
* Copyright (C) Volition, Inc. 1999. All rights reserved.
|
||||
*
|
||||
* All source code herein is the property of Volition, Inc. You may not sell
|
||||
* or otherwise commercially exploit the source or things you created based on the
|
||||
* source.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef __BM_INTERNAL_H__
|
||||
#define __BM_INTERNAL_H__
|
||||
/*
|
||||
* Copyright (C) Volition, Inc. 1999. All rights reserved.
|
||||
*
|
||||
* All source code herein is the property of Volition, Inc. You may not sell
|
||||
* or otherwise commercially exploit the source or things you created based on the
|
||||
* source.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file bm_internal.h
|
||||
* These are functions and types used by bmpman and a few others.
|
||||
*
|
||||
* @details It is a "protected" header that requires BMPMAN_INTERNAL to be defined before it can be included. This is to
|
||||
* provide a small measure of safety since this functions can cause problems if not used correctly
|
||||
*/
|
||||
|
||||
// extra check to make sure this stuff doesn't end up in normal files
|
||||
// don't use any of this unless BMPMAN_INTERNAL is defined
|
||||
#ifdef BMPMAN_INTERNAL
|
||||
#ifndef BMPMAN_INTERNAL
|
||||
#error The file header "bmpman/bm_internal.h" is protected. Make sure you know what you are doing!
|
||||
#endif
|
||||
|
||||
#include "globalincs/pstypes.h"
|
||||
#include "bmpman/bmpman.h"
|
||||
#include "globalincs/pstypes.h"
|
||||
|
||||
// Bitmap types
|
||||
enum BM_TYPE
|
||||
{
|
||||
BM_TYPE_NONE = 0, //!< No type
|
||||
BM_TYPE_USER, //!< in-memory
|
||||
BM_TYPE_PCX, //!< PCX
|
||||
BM_TYPE_TGA, //!< 16 or 32 bit targa
|
||||
BM_TYPE_DDS, //!< generic identifier for DDS
|
||||
BM_TYPE_PNG, //!< PNG
|
||||
BM_TYPE_JPG, //!< 32 bit jpeg
|
||||
BM_TYPE_ANI, //!< in-house ANI format
|
||||
BM_TYPE_EFF, //!< specifies any type of animated image, the EFF itself is just text
|
||||
|
||||
// no-type ( used in: bm_bitmaps[i].type )
|
||||
#define BM_TYPE_NONE 0
|
||||
// in-memory type ( used in: bm_bitmaps[i].type )
|
||||
#define BM_TYPE_USER 1
|
||||
// file-type types ( used in: bm_bitmaps[i].type )
|
||||
#define BM_TYPE_PCX 2
|
||||
#define BM_TYPE_TGA 3 // 16 or 32 bit targa
|
||||
#define BM_TYPE_DDS 4 // generic identifier for DDS
|
||||
#define BM_TYPE_PNG 5 // PNG
|
||||
#define BM_TYPE_JPG 6 // 32 bit jpeg
|
||||
#define BM_TYPE_ANI 7 // in-house ANI format
|
||||
#define BM_TYPE_EFF 8 // specifies any type of animated image, the EFF itself is just text
|
||||
// c-type types ( used in: bm_bitmaps[i].c_type )
|
||||
#define BM_TYPE_DXT1 9 // 24 bit with switchable alpha (compressed)
|
||||
#define BM_TYPE_DXT3 10 // 32 bit with 4 bit alpha (compressed)
|
||||
#define BM_TYPE_DXT5 11 // 32 bit with 8 bit alpha (compressed)
|
||||
#define BM_TYPE_CUBEMAP_DDS 12 // generic DDS cubemap (uncompressed cubemap surface)
|
||||
#define BM_TYPE_CUBEMAP_DXT1 13 // 24-bit cubemap (compressed cubemap surface)
|
||||
#define BM_TYPE_CUBEMAP_DXT3 14 // 32-bit cubemap (compressed cubemap surface)
|
||||
#define BM_TYPE_CUBEMAP_DXT5 15 // 32-bit cubemap (compressed cubemap surface)
|
||||
// special types ( used in: bm_bitmaps[i].type )
|
||||
#define BM_TYPE_RENDER_TARGET_STATIC 16 // 24/32 bit setup internally as a static render target
|
||||
#define BM_TYPE_RENDER_TARGET_DYNAMIC 17 // 24/32 bit setup internally as a dynamic render target
|
||||
// special types
|
||||
BM_TYPE_RENDER_TARGET_STATIC, //!< 24/32 bit setup internally as a static render target
|
||||
BM_TYPE_RENDER_TARGET_DYNAMIC, //!< 24/32 bit setup internally as a dynamic render target
|
||||
|
||||
// Compressed types (bitmap.c_type)
|
||||
BM_TYPE_DXT1, //!< 24 bit with switchable alpha
|
||||
BM_TYPE_DXT3, //!< 32 bit with 4 bit alpha
|
||||
BM_TYPE_DXT5, //!< 32 bit with 8 bit alpha
|
||||
BM_TYPE_CUBEMAP_DDS, //!< generic DDS cubemap (uncompressed cubemap surface)
|
||||
BM_TYPE_CUBEMAP_DXT1, //!< 24-bit cubemap (compressed cubemap surface)
|
||||
BM_TYPE_CUBEMAP_DXT3, //!< 32-bit cubemap (compressed cubemap surface)
|
||||
BM_TYPE_CUBEMAP_DXT5 //!< 32-bit cubemap (compressed cubemap surface)
|
||||
};
|
||||
|
||||
/// Moved from cpp file ///////////////////
|
||||
// Consider these 'protected' structures and functions that should only be used by special bitmap functions
|
||||
typedef union bm_extra_info {
|
||||
union bm_extra_info {
|
||||
struct {
|
||||
// Stuff needed for animations
|
||||
int first_frame; // used for animations -- points to index of first frame
|
||||
int num_frames; // used for animation -- number of frames in the animation
|
||||
int keyframe; // used for animation -- keyframe info
|
||||
ubyte fps; // used for animation -- frames per second
|
||||
int first_frame; //!< used for animations -- points to index of first frame
|
||||
int num_frames; //!< used for animations -- number of frames in the animation
|
||||
int keyframe; //!< used for animations -- keyframe info
|
||||
ubyte fps; //!< used for animations -- frames per second
|
||||
|
||||
struct {
|
||||
// stuff for static animations
|
||||
ubyte type; // type for individual images
|
||||
char filename[MAX_FILENAME_LEN]; // filename for individual images
|
||||
ubyte type; //!< type for individual images
|
||||
char filename[MAX_FILENAME_LEN]; //!< filename for individual images
|
||||
bool in_subdir; // Whether frames are in their own subdirectory
|
||||
} eff;
|
||||
} ani;
|
||||
|
||||
struct {
|
||||
// Stuff needed for user bitmaps
|
||||
void *data; // For user bitmaps, this is where the data comes from
|
||||
ubyte bpp; // For user bitmaps, this is what format the data is
|
||||
ubyte flags; // Flags passed to bm_create
|
||||
void* data; //!< For user bitmaps, this is where the data comes from
|
||||
ubyte bpp; //!< For user bitmaps, this is what format the data is
|
||||
ubyte flags; //!< For user bitmaps, Flags passed to bm_create
|
||||
} user;
|
||||
} bm_extra_info;
|
||||
};
|
||||
|
||||
|
||||
typedef struct bitmap_entry {
|
||||
struct bitmap_entry {
|
||||
// identification
|
||||
char filename[MAX_FILENAME_LEN]; // filename for this bitmap
|
||||
char filename[MAX_FILENAME_LEN]; //!< filename for this bitmap
|
||||
|
||||
uint signature; // a unique signature identifying the data
|
||||
uint palette_checksum; // checksum used to be sure bitmap is in current palette
|
||||
int handle; // Handle = id*MAX_BITMAPS + bitmapnum
|
||||
int last_used; // When this bitmap was last used
|
||||
uint signature; //!< a unique signature identifying the data
|
||||
uint palette_checksum; //!< checksum used to be sure bitmap is in current palette
|
||||
int handle; //!< Handle = id*MAX_BITMAPS + bitmapnum
|
||||
int last_used; //!< When this bitmap was last used
|
||||
|
||||
ubyte type; // PCX, USER, ANI, etc
|
||||
ubyte comp_type; // What sort of compressed type, BM_TYPE_NONE if not compressed
|
||||
signed char ref_count; // Number of locks on bitmap. Can't unload unless ref_count is 0.
|
||||
ubyte type; //!< PCX, USER, ANI, etc
|
||||
ubyte comp_type; //!< What sort of compressed type, BM_TYPE_NONE if not compressed
|
||||
signed char ref_count; //!< Number of locks on bitmap. Can't unload unless ref_count is 0.
|
||||
|
||||
int dir_type; // which directory this was loaded from (to skip other locations with same name)
|
||||
int dir_type; //!< which directory this was loaded from (to skip other locations with same name)
|
||||
|
||||
// compressed bitmap stuff (.dds) - RT please take a look at this and tell me if we really need it
|
||||
int mem_taken; // How much memory does this bitmap use? - UnknownPlayer
|
||||
int num_mipmaps; // number of mipmap levels, we need to read all of them
|
||||
int mem_taken; //!< How much memory does this bitmap use? - UnknownPlayer
|
||||
int num_mipmaps; //!< number of mipmap levels, we need to read all of them
|
||||
|
||||
// Stuff to keep track of usage
|
||||
ubyte preloaded; // If set, then this was loaded from the lst file
|
||||
int preload_count; // how many times this gets used in game, for unlocking
|
||||
ubyte used_flags; // What flags it was accessed thru
|
||||
int load_count;
|
||||
ubyte preloaded; //!< If set, then this was loaded from the lst file
|
||||
int preload_count; //!< how many times this gets used in game, for unlocking
|
||||
ubyte used_flags; //!< What flags it was accessed thru
|
||||
int load_count;
|
||||
|
||||
// Bitmap info
|
||||
bitmap bm;
|
||||
bitmap bm; //!< Bitmap info
|
||||
|
||||
// Data for animations and user bitmaps
|
||||
bm_extra_info info;
|
||||
bm_extra_info info; //!< Data for animations and user bitmaps
|
||||
|
||||
#ifdef BMPMAN_NDEBUG
|
||||
// bookeeping
|
||||
ubyte used_last_frame; // If set, then it was used last frame
|
||||
ubyte used_this_frame; // If set, then it was used this frame
|
||||
int data_size; // How much data this bitmap uses
|
||||
int used_count; // How many times it was accessed
|
||||
ubyte used_last_frame; // If set, then it was used last frame
|
||||
ubyte used_this_frame; // If set, then it was used this frame
|
||||
int data_size; // How much data this bitmap uses
|
||||
int used_count; // How many times it was accessed
|
||||
#endif
|
||||
} bitmap_entry;
|
||||
};
|
||||
|
||||
extern bitmap_entry bm_bitmaps[MAX_BITMAPS];
|
||||
|
||||
|
||||
// image specific lock functions
|
||||
void bm_lock_ani( int handle, int bitmapnum, bitmap_entry *be, bitmap *bmp, ubyte bpp, ubyte flags );
|
||||
void bm_lock_dds( int handle, int bitmapnum, bitmap_entry *be, bitmap *bmp, ubyte bpp, ubyte flags );
|
||||
@@ -126,6 +125,4 @@ void bm_lock_tga( int handle, int bitmapnum, bitmap_entry *be, bitmap *bmp, ubyt
|
||||
void bm_lock_user( int handle, int bitmapnum, bitmap_entry *be, bitmap *bmp, ubyte bpp, ubyte flags );
|
||||
|
||||
|
||||
#endif // BMPMAN_INTERNAL
|
||||
|
||||
#endif // __BM_INTERNAL_H__
|
||||
+1848
-1957
File diff suppressed because it is too large.
Load diff
+555
-200
@@ -1,288 +1,643 @@
|
||||
#ifndef _BMPMAN_H
|
||||
#define _BMPMAN_H
|
||||
/*
|
||||
* Copyright (C) Volition, Inc. 1999. All rights reserved.
|
||||
*
|
||||
* All source code herein is the property of Volition, Inc. You may not sell
|
||||
* or otherwise commercially exploit the source or things you created based on the
|
||||
* All source code herein is the property of Volition, Inc. You may not sell
|
||||
* or otherwise commercially exploit the source or things you created based on the
|
||||
* source.
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file bmpman.h
|
||||
* Header file for the bitmap manager (bmpman)
|
||||
*/
|
||||
|
||||
/**
|
||||
* @example bm_examples.cpp
|
||||
* @brief This containes examples of bmpman usage
|
||||
*/
|
||||
|
||||
#ifndef _BMPMAN_H
|
||||
#define _BMPMAN_H
|
||||
|
||||
#include "globalincs/pstypes.h"
|
||||
#include "cfile/cfile.h"
|
||||
#include "globalincs/pstypes.h"
|
||||
|
||||
#ifndef NDEBUG
|
||||
#define BMPMAN_NDEBUG
|
||||
#define BMPMAN_NDEBUG //!< Enables BMPMAN debugging code
|
||||
#endif
|
||||
|
||||
#define MAX_BITMAPS 4750 // How many bitmaps the game can handle
|
||||
// NOTE: MAX_BITMAPS shouldn't need to be bumped again. With the fixed bm_release() and it's
|
||||
// proper use even the largest missions should stay under this number. With the largest retail
|
||||
// missions and wasteful content we should still have about 20% of the slots free. If it still
|
||||
// goes over then it's something the artists need to fix. For instance the Terran Mara fighter,
|
||||
// with -spec and -glow and using the Shinepack, needs 117 bitmap slots alone. 111 of those is
|
||||
// just for the glowmaps. This number can be greatly reduced if the number of ani frames for
|
||||
// another LOD than LOD0 has fewer or no ani frames. A 37 frame glow ani for LOD2 is little
|
||||
// more than a waste of resources. Future reports of texture corruption should be initially
|
||||
// approached with content as the cause and not code. If anything we could/should reduce
|
||||
// MAX_BITMAPS in the future. Where it's at now should accomidate even the largest mods.
|
||||
// -- Taylor
|
||||
/**
|
||||
* @defgroup BMPMAN_CONSTANTS Macro constants used in/with bmpman.h
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief How many bitmaps the game can handle
|
||||
*
|
||||
* @attention MAX_BITMAPS shouldn't need to be bumped again. With the fixed bm_release() and it's proper use even the
|
||||
* largest missions should stay under this number. With the largest retail missions and wasteful content we should
|
||||
* still have about 20% of the slots free. If it still goes over then it's something the artists need to fix.
|
||||
* For instance the Terran Mara fighter, with -spec and -glow and using the Shinepack, needs 117 bitmap slots alone.
|
||||
* 111 of those is just for the glowmaps. This number can be greatly reduced if the number of ani frames for another
|
||||
* LOD than LOD0 has fewer or no ani frames. A 37 frame glow ani for LOD2 is little more than a waste of resources.
|
||||
* Future reports of texture corruption should be initially approached with content as the cause and not code.
|
||||
* If anything we could/should reduce MAX_BITMAPS in the future. Where it's at now should accomidate even the
|
||||
* largest mods. -- Taylor
|
||||
*/
|
||||
#define MAX_BITMAPS 4750
|
||||
|
||||
#define BMP_AABITMAP (1<<0) // antialiased bitmap
|
||||
#define BMP_TEX_XPARENT (1<<1) // transparent texture
|
||||
#define BMP_TEX_OTHER (1<<2) // so we can identify all "normal" textures
|
||||
#define BMP_TEX_DXT1 (1<<3) // dxt1 compressed 8r8g8b1a (24bit)
|
||||
#define BMP_TEX_DXT3 (1<<4) // dxt3 compressed 8r8g8b4a (32bit)
|
||||
#define BMP_TEX_DXT5 (1<<5) // dxt5 compressed 8r8g8b8a (32bit)
|
||||
#define BMP_TEX_CUBEMAP (1<<6) // a texture made for cubic environment map
|
||||
// Flag positions for bitmap.flags
|
||||
// ***** NOTE: bitmap.flags is an 8-bit value, no more BMP_TEX_* flags can be added unless the type is changed!! ******
|
||||
#define BMP_AABITMAP (1<<0) //!< antialiased bitmap
|
||||
#define BMP_TEX_XPARENT (1<<1) //!< transparent texture
|
||||
#define BMP_TEX_OTHER (1<<2) //!< so we can identify all "normal" textures
|
||||
#define BMP_TEX_DXT1 (1<<3) //!< dxt1 compressed 8r8g8b1a (24bit)
|
||||
#define BMP_TEX_DXT3 (1<<4) //!< dxt3 compressed 8r8g8b4a (32bit)
|
||||
#define BMP_TEX_DXT5 (1<<5) //!< dxt5 compressed 8r8g8b8a (32bit)
|
||||
#define BMP_TEX_CUBEMAP (1<<6) //!< a texture made for cubic environment map
|
||||
|
||||
//compressed texture types
|
||||
#define BMP_TEX_COMP ( BMP_TEX_DXT1 | BMP_TEX_DXT3 | BMP_TEX_DXT5 )
|
||||
// Combined flags
|
||||
#define BMP_TEX_COMP ( BMP_TEX_DXT1 | BMP_TEX_DXT3 | BMP_TEX_DXT5 ) //!< Compressed textures
|
||||
#define BMP_TEX_NONCOMP ( BMP_TEX_XPARENT | BMP_TEX_OTHER ) //!< Non-compressed textures
|
||||
#define BMP_TEX_ANY ( BMP_TEX_COMP | BMP_TEX_NONCOMP ) //!< Any texture
|
||||
|
||||
//non compressed textures
|
||||
#define BMP_TEX_NONCOMP ( BMP_TEX_XPARENT | BMP_TEX_OTHER )
|
||||
// Flag positions for bitmap.type
|
||||
#define BMP_FLAG_RENDER_TARGET_STATIC (1<<0) //!< Texture is a static type
|
||||
#define BMP_FLAG_RENDER_TARGET_DYNAMIC (1<<1) //!< Texture is a dynamic type (animation)
|
||||
#define BMP_FLAG_CUBEMAP (1<<2) //!< Texture is a cubemap
|
||||
|
||||
// any texture type
|
||||
#define BMP_TEX_ANY ( BMP_TEX_COMP | BMP_TEX_NONCOMP )
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#define BMP_FLAG_RENDER_TARGET_STATIC (1<<0)
|
||||
#define BMP_FLAG_RENDER_TARGET_DYNAMIC (1<<1)
|
||||
#define BMP_FLAG_CUBEMAP (1<<2)
|
||||
struct bitmap
|
||||
{
|
||||
short w; //!< Width, in number of pixels
|
||||
short h; //!< Height, in number of pixels
|
||||
short rowsize; //!< What you need to add to go to next row
|
||||
ubyte bpp; //!< Requested bitdepth of each pixel. ( 7, 8, 15, 16, 24, 32)
|
||||
ubyte true_bpp; //!< The image's actual bitdepth
|
||||
ubyte flags; //!< Various texture type flags. @see BMPMAN_CONSTANTS
|
||||
ptr_u data; //!< Pointer to data, or maybe offset into VRAM.
|
||||
ubyte *palette; /**< @brief Pointer to this bitmap's palette (if it has one).
|
||||
* @details If BMP_NO_PALETTE_MAP flag is cleared, this palette just points to the screen palette. (gr_palette)
|
||||
*/
|
||||
};
|
||||
|
||||
typedef struct bitmap {
|
||||
short w, h; // Width and height
|
||||
short rowsize; // What you need to add to go to next row
|
||||
ubyte bpp; // How many bits per pixel it is. (7,8,15,16,24,32) (what is requested)
|
||||
ubyte true_bpp; // How many bits per pixel the image actually is.
|
||||
ubyte flags; // See the BMP_???? defines for values (this isn't for the BMP_FLAG_* stuff)
|
||||
ptr_u data; // Pointer to data, or maybe offset into VRAM.
|
||||
ubyte *palette; // If bpp==8, this is pointer to palette. If the BMP_NO_PALETTE_MAP flag
|
||||
// is not set, this palette just points to the screen palette. (gr_palette)
|
||||
} bitmap;
|
||||
extern int bm_texture_ram; //!< how many bytes of textures are used.
|
||||
|
||||
extern int Bm_paging; //!< Bool type that indicates if BMPMAN is currently paging.
|
||||
|
||||
extern int Bm_paging;
|
||||
extern const ubyte bm_type_list[]; //!< List of valid bitmap types
|
||||
extern const char *bm_ext_list[]; //!< List of extensions for those types
|
||||
extern const int BM_NUM_TYPES; //!< Calculated number of bitmap types
|
||||
extern const ubyte bm_ani_type_list[]; //!< List of valid bitmap animation types
|
||||
extern const char *bm_ani_ext_list[]; //!< List of extensions for those types
|
||||
extern const int BM_ANI_NUM_TYPES; //!< Calculated number of bitmap animation types
|
||||
|
||||
extern int GLOWMAP; //!< References a map that is a fully lit version of its index -Bobboau
|
||||
extern int SPECMAP; //!< References a map that is for specular mapping -Bobboau
|
||||
extern int ENVMAP; //!< References a map that is for environment mapping -Bobboau
|
||||
extern int NORMMAP; //!< Normal mapping
|
||||
extern int HEIGHTMAP; //!< Height map for normal mapping
|
||||
extern int MISCMAP; //!< Utility map, to be utilized for various things shader authors can come up with
|
||||
|
||||
/**
|
||||
* @brief Initilizes the bitmap manager
|
||||
*/
|
||||
void bm_init();
|
||||
|
||||
/**
|
||||
* @brief Closes the bitmap manager, freeing any allocated memory used by bitmaps. Is called at program close.
|
||||
*/
|
||||
void bm_close();
|
||||
|
||||
int bm_get_cache_slot( int bitmap_id, int separate_ani_frames );
|
||||
/**
|
||||
* Gets the cache slot of the bitmap indexed by handle.
|
||||
*
|
||||
* @details if the bitmap is an ani, gets the first frame
|
||||
*
|
||||
* @returns The cache slot index of the bitmap if handle is valid
|
||||
*
|
||||
* @note If the handle is invalid, an Assert() fails
|
||||
*/
|
||||
int bm_get_cache_slot(int bitmap_id, int separate_ani_frames);
|
||||
|
||||
/**
|
||||
* @brief Gets the next available bitmap slot.
|
||||
*/
|
||||
int bm_get_next_handle();
|
||||
|
||||
void *bm_malloc(int n, int size);
|
||||
/**
|
||||
* @brief Allocates memory for the given handle.
|
||||
*
|
||||
* @returns A pointer to the allocated vm if successful,
|
||||
* @returns Null, if unsuccessful
|
||||
*
|
||||
* @note z64 - This function looks fishy. Not only is handle not used in release builds, but bm_bitmaps[handle].size
|
||||
* and bm_texture_size aren't modified unless this is a debug build
|
||||
*/
|
||||
void *bm_malloc(int handle, int size);
|
||||
|
||||
/**
|
||||
* @brief (DEBUG) Similar to bm_malloc, but only updates how much memory is used
|
||||
*
|
||||
* @note z64 - Also fishy (see bm_malloc)
|
||||
*/
|
||||
void bm_update_memory_used(int n, int size);
|
||||
|
||||
// how many bytes of textures are used.
|
||||
extern int bm_texture_ram;
|
||||
|
||||
// This loads a bitmap so we can draw with it later.
|
||||
// It returns a negative number if it couldn't load
|
||||
// the bitmap. On success, it returns the bitmap
|
||||
// number.
|
||||
/**
|
||||
* @brief Loads a bitmap so we can draw with it later.
|
||||
*
|
||||
* @param filename
|
||||
*
|
||||
* @returns The bitmap number if successful, else
|
||||
* @returns a negative value if not
|
||||
*/
|
||||
int bm_load(const char* filename);
|
||||
|
||||
/**
|
||||
* @brief Loads a bitmap so we can draw with it later. (Preferred version)
|
||||
*
|
||||
* @param filename
|
||||
*
|
||||
* @returns The bitmap number if successful, else
|
||||
* @returns a negative value if not
|
||||
*/
|
||||
int bm_load(const SCP_string& filename);
|
||||
|
||||
// special load function. basically allows you to load a bitmap which already exists (by filename).
|
||||
// this is useful because in some cases we need to have a bitmap which is locked in screen format
|
||||
// _and_ texture format, such as pilot pics and squad logos
|
||||
/**
|
||||
* @brief Reloads a bitmap as a duplicate.
|
||||
*
|
||||
* @details This function basically allows you to load a bitmap which already exists (by filename). This is useful
|
||||
* because in some cases we need to have a bitmap which is locked in screen format _and_ texture format, such as
|
||||
* the pilot pics and squad logos
|
||||
*
|
||||
* @param filename
|
||||
*
|
||||
* @returns The bitmap number if successful, else
|
||||
* @returns a negative value if not
|
||||
*/
|
||||
int bm_load_duplicate(const char *filename);
|
||||
|
||||
// Creates a bitmap that exists in RAM somewhere, instead
|
||||
// of coming from a disk file. You pass in a pointer to a
|
||||
// block of data. The data can be in the following formats:
|
||||
// 8 bpp (mapped into game palette)
|
||||
// 32 bpp
|
||||
// On success, it returns the bitmap number. You cannot
|
||||
// free that RAM until bm_release is called on that bitmap.
|
||||
// See example at bottom of this file
|
||||
int bm_create( int bpp, int w, int h, void *data = NULL, int flags = 0);
|
||||
/**
|
||||
* Loads a bitmap which exists somewhere in the RAM.
|
||||
*
|
||||
* @param bpp The bitdepth of the bitmap
|
||||
* @param w The width of the bitmap
|
||||
* @param h The height of the bitmap
|
||||
* @param[in] data The bitmap's data glob
|
||||
* @param flags
|
||||
*
|
||||
* @note The used RAM cannot be freed until bm_release is called on the created bitmap
|
||||
*/
|
||||
int bm_create(int bpp, int w, int h, void *data = NULL, int flags = 0);
|
||||
|
||||
// Frees up a bitmap's data, but bitmap number 'n' can
|
||||
// still be used, it will just have to be paged in next
|
||||
// time it is locked.
|
||||
int bm_unload( int n, int clear_render_targets = 0, bool nodebug = false);
|
||||
/**
|
||||
* @brief Unloads a bitmap's data, but not the bitmap info
|
||||
*
|
||||
* @details The bm number (n) may be reused once this function has been called on it. However, it will have to be paged
|
||||
* in the next time it is locked.
|
||||
|
||||
// like bm_unload() except that it's safe to use to free data without worrying about
|
||||
// load_count so it's safe to use in relation to bm_release() and in gr_*_texture functions
|
||||
int bm_unload_fast( int n, int clear_render_targets = 0 );
|
||||
* @param handle The index number of the bitmap to free
|
||||
* @param clear_render_targets If true, release a render target
|
||||
* @param nodebug If true, exclude certain debug messages
|
||||
*
|
||||
* @returns 0 if not successful,
|
||||
* @returns 1 if successful
|
||||
*/
|
||||
int bm_unload(int handle, int clear_render_targets = 0, bool nodebug = false);
|
||||
|
||||
// Frees up a bitmap's data, and it's slot, so bitmap
|
||||
// number 'n' cannot be used anymore, and bm_load or
|
||||
// bm_create might reuse the slot.
|
||||
int bm_release( int n, int clear_render_targets = 0 );
|
||||
/**
|
||||
* @brief Quickly unloads a bitmap's data, ignoring the load_count
|
||||
*
|
||||
* @details Similar to bm_unload(), except that it can be safely used to free data without worrying about load_count.
|
||||
* It's safe to use in relation to bm_release() and in gr_*_texture functions
|
||||
*
|
||||
* @param handle The bm number of the bitmap to free
|
||||
* @param clear_render_targets If true, release a render target
|
||||
*
|
||||
* @note bm_free_data_fast() is used here and NOT bm_free_data()
|
||||
*/
|
||||
int bm_unload_fast(int handle, int clear_render_targets = 0);
|
||||
|
||||
// This loads a bitmap sequence so we can draw with it later.
|
||||
// It returns a negative number if it couldn't load
|
||||
// the bitmap. On success, it returns the bitmap
|
||||
// number of the first frame and nframes is set.
|
||||
extern int bm_load_animation( const char *filename, int *nframes = NULL, int *fps = NULL, int *keyframe = NULL, int can_drop_frames = 0, int dir_type = CF_TYPE_ANY );
|
||||
/**
|
||||
* @brief Frees both a bitmap's data and it's associated slot.
|
||||
*
|
||||
* @details Once called, the bm number 'n' cannot be used until bm_load or bm_create is re-inits the slot.
|
||||
*
|
||||
* @param handle The index number of the bitmap to release
|
||||
* @param clear_render_targets If nonzero, also release render targets
|
||||
*
|
||||
* @returns 1 on success,
|
||||
* @returns 0 otherwise
|
||||
*
|
||||
* @note If the passed handle is that of an ANI, it frees EVERY frame. Be sure to only pass the handle of the first frame!
|
||||
*
|
||||
* @todo upgrade return type and clear_render_targets type to bools
|
||||
*/
|
||||
int bm_release(int handle, int clear_render_targets = 0);
|
||||
|
||||
//Loads either animation (bm_load_animation) or still image (bm_load)
|
||||
extern int bm_load_either(const char *filename, int *nframes = NULL, int *fps = NULL, int *keyframe = NULL, int can_drop_frames = 0, int dir_type = CF_TYPE_ANY);
|
||||
/**
|
||||
* @brief Loads a bitmap sequance so we can draw with it.
|
||||
*
|
||||
* @param[in] filename
|
||||
* @param[out] nframes If non-null, set to the number of frames the animation has
|
||||
* @param[out] fps If non-null, set to the fps of this animation
|
||||
* @param[out] keyframe if non null, set to the keyframe index of this animation
|
||||
* @param[in] can_drop_frames If set, allows dropped frames
|
||||
* @param[in] dir_type Directory type
|
||||
*
|
||||
* @returns The bm number of the first bitmap in the sequence if successful, or
|
||||
* @returns A negative value if unsuccessful
|
||||
*/
|
||||
int bm_load_animation(const char *filename, int *nframes = NULL, int *fps = NULL, int *keyframe = NULL, int can_drop_frames = 0, int dir_type = CF_TYPE_ANY);
|
||||
|
||||
// This locks down a bitmap and returns a pointer to a bitmap
|
||||
// that can be accessed until you call bm_unlock. Only lock
|
||||
// a bitmap when you need it! This will convert it into the
|
||||
// appropriate format also.
|
||||
extern bitmap * bm_lock( int bitmapnum, ubyte bpp, ubyte flags, bool nodebug = false);
|
||||
/**
|
||||
* @brief Loads either animation (bm_load_animation) or still image (bm_load)
|
||||
*
|
||||
* @param[in] filename
|
||||
* @param[out] nframes If non-null and loading was successful, set to the number of frames the animation has
|
||||
* @param[out] fps If non-null and loading was successful, set to the fps of this animation
|
||||
* @param[out] keyframe if non null and loading was successful, set to the keyframe index of this animation
|
||||
* @param[in] can_drop_frames
|
||||
* @param[in] dir_type
|
||||
*
|
||||
* @returns The bm number of the first bitmap in the sequence if successful, or
|
||||
* @returns A negative value if unsuccessful
|
||||
*/
|
||||
int bm_load_either(const char *filename, int *nframes = NULL, int *fps = NULL, int *keyframe = NULL, int can_drop_frames = 0, int dir_type = CF_TYPE_ANY);
|
||||
|
||||
// The signature is a field that gets filled in with
|
||||
// a unique signature for each bitmap. The signature for each bitmap
|
||||
// will also change when the bitmap's data changes.
|
||||
extern uint bm_get_signature( int bitmapnum);
|
||||
/**
|
||||
* @brief Locks down the bitmap indexed by bitmapnum.
|
||||
*
|
||||
* @details Also converts the bitmap to the appropriate format specified by bpp and flags. Only lock a bitmap when you
|
||||
* need it!
|
||||
*
|
||||
* @param bitmapnum The number indexing the desired bitmap
|
||||
* @param bpp The desired bpp of the bitmep
|
||||
* @param flags The desired bitmap format
|
||||
* @param nodebug
|
||||
|
||||
//gets the image type
|
||||
* @returns A pointer to the bitmap that's valid until bm_unlock is called if successful, or
|
||||
* @returns NULL if unsuccessful
|
||||
*/
|
||||
bitmap* bm_lock(int handle, ubyte bpp, ubyte flags, bool nodebug = false);
|
||||
|
||||
/**
|
||||
* @brief Returns a unique signiature for the bitmap indexed by handle
|
||||
*
|
||||
* @details A signature will change when the bitmap's data changes
|
||||
*/
|
||||
uint bm_get_signature(int handle);
|
||||
|
||||
/**
|
||||
* @brief Returns the image type of the given bitmap handle
|
||||
*/
|
||||
ubyte bm_get_type(int handle);
|
||||
|
||||
// Unlocks a bitmap
|
||||
extern void bm_unlock( int bitmapnum );
|
||||
/**
|
||||
* @brief Unlocks a bitmap
|
||||
*
|
||||
* @details Decrements the ref_count member of the bitmap_entry struct, A bitmap can only be unloaded when the
|
||||
* ref_count is 0
|
||||
*/
|
||||
void bm_unlock(int handle);
|
||||
|
||||
//WMC - Returns 0 if invalid, nonzero if valid
|
||||
extern int bm_is_valid(int handle);
|
||||
/**
|
||||
* @brief Checks if the bitmap indexed by handle is valid
|
||||
*
|
||||
* @details Some early known false or out of range handles (such as negative) are checked within
|
||||
* an initial routine pass, followed by a more thorough check routine to ensure the
|
||||
* series of bitmaps within the bm_bitmaps[] structure have not become invalid.
|
||||
*
|
||||
* @returns Nonzero if valid, else
|
||||
* @returns Zero otherwise
|
||||
*
|
||||
* @todo z64 - Returned value is essentially a bool type, need to check all caller functions to see if it can safely
|
||||
* be updated to reflect this
|
||||
*/
|
||||
int bm_is_valid(int handle);
|
||||
|
||||
// Gets info. w,h,or flags,nframes or fps can be NULL if you don't care.
|
||||
//WMC - Returns -1 on failure, handle or first frame handle on success.
|
||||
int bm_get_info( int bitmapnum, int *w=NULL, int * h=NULL, ubyte * flags=NULL, int *nframes=NULL, int *fps=NULL );
|
||||
/**
|
||||
* @brief Gets info on the bitmap indexed by handle.
|
||||
*
|
||||
* @param[out] w If non-null, gets the width
|
||||
* @param[out] h If non-null, gets the heigth
|
||||
* @param[out] flags If non-null, gets the flags
|
||||
* @param[out] nframs If non-null, gets the nframes
|
||||
* @param[out] fps If non-null, gets the fps
|
||||
*
|
||||
* @returns The handle on success, or
|
||||
* @returns The handle to the first frame on success, or
|
||||
* @returns -1 on failure
|
||||
*/
|
||||
int bm_get_info(int handle, int *w = NULL, int * h = NULL, ubyte * flags = NULL, int *nframes = NULL, int *fps = NULL);
|
||||
|
||||
// get filename
|
||||
extern void bm_get_filename(int bitmapnum, char *filename);
|
||||
/**
|
||||
* @brief Gets the filename of the bitmap indexed by handle
|
||||
*
|
||||
* @param[out] filename The filename of the bitmap, if successful. Is set to an empty string if unseccessful
|
||||
*
|
||||
* @todo z64 - maybe deprecate this in favor of an SCP_string version
|
||||
*/
|
||||
void bm_get_filename(int bitmapnum, char *filename);
|
||||
|
||||
// call to load all data for all bitmaps that have been requested to be loaded
|
||||
extern void bm_gfx_load_all();
|
||||
extern void bm_unload_all();
|
||||
/**
|
||||
* @brief Gets the filename of the bitmap indexed by handle, which must exist.
|
||||
*
|
||||
* @details If the bitmap does not exist (i.e. the handle is invalid), then an Assertion halts program execution.
|
||||
*
|
||||
* @returns A const char* to the filename of the bitmap
|
||||
*
|
||||
* @todo z64 - maybe deprecate this in favor of an SCP_string version.
|
||||
* @todo z64 - maybe combine this with the other bm_get_filename function like so:
|
||||
* void bm_get_filename(int handle, SCP_string *filename, bool must_exist = false);
|
||||
*/
|
||||
const char *bm_get_filename(int handle);
|
||||
|
||||
// call to get the palette for a bitmap
|
||||
void bm_get_palette(int n, ubyte *pal, char *name);
|
||||
/**
|
||||
* @brief Loads all data for all bitmaps that have been requested to be loaded
|
||||
*
|
||||
* @note This function is not defined.
|
||||
*/
|
||||
void bm_gfx_load_all();
|
||||
|
||||
// Hacked function to get a pixel from a bitmap.
|
||||
// Only works good in 8bpp mode.
|
||||
void bm_gfx_get_pixel( int bitmap, float u, float v, ubyte *r, ubyte *g, ubyte *b );
|
||||
/**
|
||||
* @brief Unloads all used bitmaps, should only ever be called by game_shutdown()
|
||||
*
|
||||
* @todo Maybe move this declaration into bmpman.cpp and then extern this function within game_shutdown() to
|
||||
* ensure it only ever gets called there.
|
||||
*/
|
||||
void bm_unload_all();
|
||||
|
||||
// Returns number of bytes of bitmaps locked this frame
|
||||
// ntotal = number of bytes of bitmaps locked this frame
|
||||
// nnew = number of bytes of bitmaps locked this frame that weren't locked last frame
|
||||
/**
|
||||
* @brief Gets the palette for a given bitmap indexed by handle, and optionally the filename
|
||||
*
|
||||
* @param[out] pal Is set to reference the bitmap's palette
|
||||
* @param[out] name (optional) Is set to the bitmap's filename
|
||||
*
|
||||
* @todo Maybe get rid of the optional filename and have the callers call bm_get_filename. Less efficient, however.
|
||||
*/
|
||||
void bm_get_palette(int handle, ubyte *pal, char *name);
|
||||
|
||||
/**
|
||||
* @brief Hack to get a pixel from a bitmap
|
||||
*
|
||||
* @details only works good in 8bpp mode
|
||||
*
|
||||
* @note This function is not defined.
|
||||
*/
|
||||
void bm_gfx_get_pixel(int bitmap, float u, float v, ubyte *r, ubyte *g, ubyte *b);
|
||||
|
||||
/**
|
||||
* @brief (DEBUG) Gets memory size, in bytes, of the locked bitmaps
|
||||
*
|
||||
* @details Both params are non-optional, and must be non-null. There's currently no safety checks on either.
|
||||
*
|
||||
* @param ntotal[out] Memory size, in bytes, of the locked bitmaps
|
||||
* @param nnew[out] Memory size, in bytes, of the bitmaps that were locked since the last frame
|
||||
*
|
||||
* @note This is a debug function, and is undefined within release builds
|
||||
*/
|
||||
void bm_get_frame_usage(int *ntotal, int *nnew);
|
||||
|
||||
// Reload a different image into an existing bmpman slot
|
||||
/**
|
||||
* @brief Reloads an existing bmpman slot with different bitmap
|
||||
*
|
||||
* @param[in] filename The filename of the image to load
|
||||
*
|
||||
* @returns The bitmap handle on success, or
|
||||
* @returns A negative value on failure
|
||||
*
|
||||
* @note This should only be used if you are certain the new picture is the same type, has same dimensions, etc.
|
||||
*/
|
||||
int bm_reload(int bitmap_handle, const char* filename);
|
||||
|
||||
/*
|
||||
* Example on using bm_create
|
||||
*
|
||||
{
|
||||
static int test_inited = 0;
|
||||
static int test_bmp;
|
||||
static uint test_bmp_data[128*64];
|
||||
|
||||
if ( !test_inited ) {
|
||||
test_inited = 1;
|
||||
// Create the new bitmap and fill in its data.
|
||||
// When you're done with it completely, call
|
||||
// bm_release to free up the bitmap handle
|
||||
test_bmp = bm_create( 32, 128, 64, test_bmp_data );
|
||||
int i,j;
|
||||
for (i=0; i<64; i++ ) {
|
||||
for (j=0; j<64; j++ ) {
|
||||
uint r=i*4;
|
||||
test_bmp_data[j+i*128] = r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bm_unload(test_bmp); // this pages out the data, so that the
|
||||
// next bm_lock will convert the new data to the
|
||||
// correct bpp
|
||||
|
||||
// put in new data
|
||||
int x,y;
|
||||
gr_reset_clip();
|
||||
for (y=0; y<64; y++)
|
||||
for (x=0; x<128; x++ )
|
||||
test_bmp_data[y*128+x] = 15;
|
||||
|
||||
// Draw the bitmap to upper left corner
|
||||
gr_set_bitmap(test_bmp);
|
||||
gr_bitmap( 0,0 );
|
||||
}
|
||||
/**
|
||||
* @brief Stuffs Pathtypes with an additional path leading to a subdir of the same name as the given file (minus file extension)
|
||||
*/
|
||||
bool set_temp_subdir_pathtype(const char *filename);
|
||||
|
||||
|
||||
//============================================================================
|
||||
// Paging stuff
|
||||
//============================================================================
|
||||
|
||||
/**
|
||||
* @brief Tells bmpman to start keeping track of what bitmaps are used where
|
||||
*/
|
||||
void bm_page_in_start();
|
||||
|
||||
/**
|
||||
* @brief Tells bmpman to stop paging (?)
|
||||
*/
|
||||
void bm_page_in_stop();
|
||||
|
||||
// Paging code in a library should call these functions
|
||||
// in its page in function.
|
||||
|
||||
// Marks a texture as being used for this level
|
||||
// If num_frames is passed, assume this is an animation
|
||||
void bm_page_in_texture( int bitmapnum, int num_frames = 0 );
|
||||
/**
|
||||
* @brief Marks a texture as being used for this level
|
||||
*
|
||||
* @param[in] num_frames If specified, assumes this is an animated texture
|
||||
*/
|
||||
void bm_page_in_texture(int bitmapnum, int num_frames = 0);
|
||||
|
||||
// marks a texture as being a transparent textyre used for this level
|
||||
// Marks a texture as being used for this level
|
||||
// If num_frames is passed, assume this is an animation
|
||||
void bm_page_in_xparent_texture( int bitmapnum, int num_frames=1 );
|
||||
/**
|
||||
* @brief Marks a textures as being used for level and is transparant
|
||||
*
|
||||
* @param[in] num_frames If specified, assumes this is an animated texture
|
||||
*/
|
||||
void bm_page_in_xparent_texture(int bitmapnum, int num_frames = 1);
|
||||
|
||||
// Marks an aabitmap as being used for this level
|
||||
// If num_frames is passed, assume this is an animation
|
||||
void bm_page_in_aabitmap( int bitmapnum, int num_frames=1 );
|
||||
/**
|
||||
* @brief Marks a texture as being used for this level, and is anti-aliased
|
||||
*
|
||||
* @param[in] num_frames If specified, assumes this is an animated texture
|
||||
*/
|
||||
void bm_page_in_aabitmap(int bitmapnum, int num_frames = 1);
|
||||
|
||||
// unload a texture that was paged in
|
||||
int bm_page_out( int handle );
|
||||
/**
|
||||
* @brief Unloads the bitmap indexed by handle that was previously paged-in
|
||||
*
|
||||
* @returns 0 If the bitmap had already been released, or
|
||||
* @returns 0 If the handle is invalid, or
|
||||
* @returns 1 If successful
|
||||
*
|
||||
* @todo The return type should be a bool
|
||||
*/
|
||||
int bm_page_out(int handle);
|
||||
|
||||
//
|
||||
// Mode: 0 = High memory
|
||||
// 1 = Low memory ( every other frame of ani's)
|
||||
// 2 = Debug low memory ( only use first frame of each ani )
|
||||
void bm_set_low_mem( int mode );
|
||||
|
||||
const char *bm_get_filename(int handle);
|
||||
/**
|
||||
* @brief Sets BMPMAN's memory mode
|
||||
*
|
||||
* @details 0 = High memory;
|
||||
* 1 = Low memory (loads every other frame of ani's);
|
||||
* 2 = Debug low memory (only use first frame of each ani)
|
||||
*
|
||||
* @todo This should use an enum, or instead allow an arbitrary number to drop frames (like 1/2, 1/3, etc.)
|
||||
*/
|
||||
void bm_set_low_mem(int mode);
|
||||
|
||||
/**
|
||||
* @brief Sets bm_set_components and bm_get_components to reference screen format functions
|
||||
*/
|
||||
void BM_SELECT_SCREEN_FORMAT();
|
||||
|
||||
/**
|
||||
* @brief Sets bm_set_components and bm_get_components to reference texture format functions
|
||||
*/
|
||||
void BM_SELECT_TEX_FORMAT();
|
||||
|
||||
/**
|
||||
* @brief Sets bm_set_components and bm_get_components to reference texture format functions (with alpha)
|
||||
*/
|
||||
void BM_SELECT_ALPHA_TEX_FORMAT();
|
||||
|
||||
// set the rgba components of a pixel, any of the parameters can be NULL
|
||||
extern void (*bm_set_components)(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
extern void (*bm_set_components_32)(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
void bm_set_components_argb_d3d_16_screen(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
void bm_set_components_argb_d3d_32_screen(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
void bm_set_components_argb_d3d_16_tex(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
void bm_set_components_argb_d3d_32_tex(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
/**
|
||||
* @brief Functional pointer that references any of the bm_set_components functions.
|
||||
*
|
||||
* @details The bm_set_components functions packs the RGBA values into the ubyte array referenced by pixel, whose
|
||||
* format differs according to its bpp value and presence of an alpha channel. The RGBA values are scaled accordingly.
|
||||
*
|
||||
* @param[out] pixel The pixel to set
|
||||
* @param[in] r Red value (may not be NULL)
|
||||
* @param[in] g Green value (may not be NULL)
|
||||
* @param[in] b Blue value (may not be NULL)
|
||||
* @param[in] a Alpha value (currently ignored)
|
||||
*
|
||||
* @note z64 - These functions were made predating the introduction of C++ classes, and are basically the equivalent
|
||||
* of Pixel::set(ubyte *r, ubyte *b, ubyte *g). The original comment mentions that any of the rgba params may be
|
||||
* NULL, but this is by far _NOT_ the case, as a NULL value will cause undefined behavior (really really bad chroma
|
||||
* corruption)
|
||||
*
|
||||
* @note These functions assume the incoming bitdepth will always be >= to the outgoing bitdepth of the pixel. Should
|
||||
* the incoming bitdepth be lower, the outgoing values will appear darker than they should be
|
||||
*/
|
||||
extern void(*bm_set_components)(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
|
||||
// get the rgba components of a pixel, any of the parameters can be NULL
|
||||
/**
|
||||
* @brief Functional pointer that references any of the bm_set_components_32 functions.
|
||||
*
|
||||
* @details The bm_set_components functions packs the RGBA values into the ubyte array referenced by pixel, whose
|
||||
* format differs according to its bpp value and presence of an alpha channel. The RGBA values are scaled accordingly.
|
||||
*
|
||||
* @see bm_set_components
|
||||
*/
|
||||
extern void(*bm_set_components_32)(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
|
||||
/**
|
||||
* @brief Sets the 16bpp screen pixel to the specified RGBA value
|
||||
*
|
||||
* @see bm_set_components
|
||||
*/
|
||||
void bm_set_components_argb_16_screen(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
|
||||
/**
|
||||
* @brief Sets the 32bpp screen pixel to the specified RGBA value
|
||||
*
|
||||
* @see bm_set_components
|
||||
*/
|
||||
void bm_set_components_argb_32_screen(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
|
||||
/**
|
||||
* @brief Sets the 16bpp texture pixel to the specified RGBA value
|
||||
*
|
||||
* @see bm_set_components
|
||||
*/
|
||||
void bm_set_components_argb_16_tex(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
|
||||
/**
|
||||
* @brief Sets the 32bpp texture pixel to the specified RGBA value
|
||||
*
|
||||
* @see bm_set_components
|
||||
*/
|
||||
void bm_set_components_argb_32_tex(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
|
||||
/**
|
||||
* @brief Gets the RGBA components of a pixel according to the selected mode
|
||||
*
|
||||
* @see BM_SELECT_SCREEN_FORMAT() BM_SELECT_TEX_FORMAT() BM_SELECT_ALPHA_TEX_FORMAT()
|
||||
*/
|
||||
void bm_get_components(ubyte *pixel, ubyte *r, ubyte *g, ubyte *b, ubyte *a);
|
||||
|
||||
extern int GLOWMAP; //this holds a reference to a map that is a fully lit version of its index -Bobboau
|
||||
extern int SPECMAP; //this holds a reference to a map that is for specular mapping -Bobboau
|
||||
extern int ENVMAP; //this holds a reference to a map that is for environment mapping -Bobboau
|
||||
extern int NORMMAP; // normal mapping
|
||||
extern int HEIGHTMAP; // height map for normal mapping
|
||||
extern int MISCMAP; // Utility map, to be utilized for various things shader authors can come up with
|
||||
/**
|
||||
* @brief Returns the compression type of the bitmap indexed by handle
|
||||
*/
|
||||
int bm_is_compressed(int handle);
|
||||
|
||||
int bm_is_compressed(int num);
|
||||
int bm_get_tcache_type(int num);
|
||||
int bm_get_size(int num);
|
||||
int bm_get_num_mipmaps(int num);
|
||||
/**
|
||||
* @brief Gets the correct TCACHE_TYPE for compressed graphics (uncompressed are assumed TCACHE_TYPE_NORMAL)
|
||||
*/
|
||||
int bm_get_tcache_type(int handle);
|
||||
|
||||
/**
|
||||
* @brief Gets the size, in bytes, taken up by the bitmap indexed by handle
|
||||
*
|
||||
* @todo retval should be a size_t
|
||||
*/
|
||||
int bm_get_size(int handle);
|
||||
|
||||
/**
|
||||
* @brief Gets the number of mipmaps of the indexed texture
|
||||
*/
|
||||
int bm_get_num_mipmaps(int handle);
|
||||
|
||||
/**
|
||||
* @brief Checks to see if the indexed bitmap has an alpha channel
|
||||
*
|
||||
* @note Currently just checks if the bitmap is 32bpp and is not a .PCX
|
||||
*
|
||||
* @todo retval should be a bool
|
||||
*/
|
||||
int bm_has_alpha_channel(int handle);
|
||||
|
||||
/**
|
||||
* @brief (DEBUG) Prints all loaded bitmaps to an outwindow
|
||||
*/
|
||||
void bm_print_bitmaps();
|
||||
|
||||
int bm_make_render_target( int width, int height, int flags );
|
||||
int bm_is_render_target(int bitmap_id);
|
||||
/**
|
||||
* @brief Creates a render target as close to the desired resolution as possible.
|
||||
*
|
||||
* @returns the handle of an avilable render target if successful, or
|
||||
* @returns -1 if not successful
|
||||
*
|
||||
* @note BM_FLAG_RENDER_TARGET_STATIC are drawn once/infrequently, while BM_FLAG_RENDER_TARGET_DYNAMIC are drawn roughly once every frame
|
||||
*/
|
||||
int bm_make_render_target(int width, int height, int flags);
|
||||
|
||||
/**
|
||||
* @brief Checks to see if the given bitmap indexed by handle is a render target
|
||||
*
|
||||
* @returns The render type (BM_TYPE) if it is a render target, or
|
||||
* @returns 0 if it is not
|
||||
*/
|
||||
int bm_is_render_target(int handle);
|
||||
|
||||
/**
|
||||
* @brief (GR function) Calls gr_bm_set_render target for the given bitmap indexed by handle
|
||||
*
|
||||
* @returns 1 if successful, or
|
||||
* @returns 0 if unsuccessful
|
||||
*
|
||||
* @todo retval should be a bool
|
||||
*/
|
||||
int bm_set_render_target(int handle, int face = -1);
|
||||
|
||||
int bm_load_and_parse_eff(const char *filename, int dir_type, int *nframes, int *nfps, int *key, ubyte *type);
|
||||
/**
|
||||
* @brief Loads and parses an .EFF
|
||||
*
|
||||
* @param[in] filename The filename of the .EFF
|
||||
* @param[in] dir_type
|
||||
* @param[out] nframes (optional) If given, is set to the number of frames this .EFF has
|
||||
* @param[out] nfps (optional) If given, is set to the fps of this .EFF
|
||||
* @param[out] key (optional) If given, is set to the keyframe index of this .EFF
|
||||
* @param[out] type (optional) If given, is set to the BM_TYPE of the .EFF
|
||||
* @param[out] in_subdir (optional) If given, is set to true if the frames of this .EFF are in a subdir
|
||||
*
|
||||
* @returns 0 If successful,
|
||||
* @returns -1 if not successful
|
||||
*
|
||||
* @todo retval should be a bool
|
||||
*/
|
||||
int bm_load_and_parse_eff(const char *filename, int dir_type, int *nframes, int *nfps, int *key, ubyte *type, bool *in_subdir);
|
||||
|
||||
#endif
|
||||
@@ -86,6 +86,7 @@ cf_pathtype Pathtypes[CF_MAX_PATH_TYPES] = {
|
||||
{ CF_TYPE_INTEL_ANIMS, "data" DIR_SEPARATOR_STR "intelanims", ".pcx .ani .eff .tga .jpg .png .dds", CF_TYPE_DATA },
|
||||
{ CF_TYPE_SCRIPTS, "data" DIR_SEPARATOR_STR "scripts", ".lua .lc", CF_TYPE_DATA },
|
||||
{ CF_TYPE_FICTION, "data" DIR_SEPARATOR_STR "fiction", ".txt", CF_TYPE_DATA },
|
||||
{ CF_TYPE_TEMP_SUBDIR_LOOKUP, "", ".eff", CF_TYPE_DATA },
|
||||
};
|
||||
|
||||
|
||||
|
||||
+2
-1
@@ -78,8 +78,9 @@ typedef struct {
|
||||
#define CF_TYPE_INTEL_ANIMS 34
|
||||
#define CF_TYPE_SCRIPTS 35
|
||||
#define CF_TYPE_FICTION 36
|
||||
#define CF_TYPE_TEMP_SUBDIR_LOOKUP 37
|
||||
|
||||
#define CF_MAX_PATH_TYPES 37 // Can be as high as you'd like //DTP; yeah but beware alot of things uses CF_MAX_PATH_TYPES
|
||||
#define CF_MAX_PATH_TYPES 38 // Can be as high as you'd like //DTP; yeah but beware alot of things uses CF_MAX_PATH_TYPES
|
||||
|
||||
|
||||
// TRUE if type is specified and valid
|
||||
|
||||
@@ -901,6 +901,7 @@ int cf_find_file_location( const char *filespec, int pathtype, int max_out, char
|
||||
case CF_TYPE_MULTI_CACHE:
|
||||
case CF_TYPE_MISSIONS:
|
||||
case CF_TYPE_CACHE:
|
||||
case CF_TYPE_TEMP_SUBDIR_LOOKUP:
|
||||
cfs_slow_search = 1;
|
||||
break;
|
||||
|
||||
|
||||
@@ -217,7 +217,6 @@ Flag exe_params[] =
|
||||
{ "-dis_weapons", "Disable weapon rendering", true, 0, EASY_DEFAULT, "Dev Tool", "http://www.hard-light.net/wiki/index.php/Command-Line_Reference#-dis_weapons", },
|
||||
{ "-output_sexps", "Output SEXPs to sexps.html", true, 0, EASY_DEFAULT, "Dev Tool", "http://www.hard-light.net/wiki/index.php/Command-Line_Reference#-output_sexps", },
|
||||
{ "-output_scripting", "Output scripting to scripting.html", true, 0, EASY_DEFAULT, "Dev Tool", "http://www.hard-light.net/wiki/index.php/Command-Line_Reference#-output_scripting", },
|
||||
{ "-output_json_data", "Output table objects to [table].json", true, 0, EASY_DEFAULT, "Dev Tool", "http://www.hard-light.net/wiki/index.php/Command-Line_Reference#-output_json_data", },
|
||||
{ "-save_render_target", "Save render targets to file", true, 0, EASY_DEFAULT, "Dev Tool", "http://www.hard-light.net/wiki/index.php/Command-Line_Reference#-save_render_target", },
|
||||
{ "-debug_window", "Display debug window", true, 0, EASY_DEFAULT, "Dev Tool", "http://www.hard-light.net/wiki/index.php/Command-Line_Reference#-debug_window", },
|
||||
{ "-verify_vps", "Spew VP CRCs to vp_crcs.txt", true, 0, EASY_DEFAULT, "Dev Tool", "http://www.hard-light.net/wiki/index.php/Command-Line_Reference#-verify_vps", },
|
||||
@@ -495,9 +494,6 @@ bool Cmdline_no_unfocus_pause = false;
|
||||
cmdline_parm get_flags_arg("-get_flags", "Output the launcher flags file", AT_NONE);
|
||||
cmdline_parm output_sexp_arg("-output_sexps", NULL, AT_NONE); //WMC - outputs all SEXPs to sexps.html
|
||||
cmdline_parm output_scripting_arg("-output_scripting", NULL, AT_NONE); //WMC
|
||||
cmdline_parm output_json_data_arg("-output_json_data", "Output table objects to [table].json", AT_NONE); //chief1983, Cmdline_output_json_data
|
||||
|
||||
bool Cmdline_output_json_data = false;
|
||||
|
||||
// Deprecated flags - CommanderDJ
|
||||
cmdline_parm deprecated_spec_arg("-spec", "Deprecated", AT_NONE);
|
||||
@@ -1513,11 +1509,6 @@ bool SetCmdlineParams()
|
||||
output_sexps("sexps.html");
|
||||
}
|
||||
|
||||
if ( output_json_data_arg.found() )
|
||||
{
|
||||
Cmdline_output_json_data = true;
|
||||
}
|
||||
|
||||
if ( no_vbo_arg.found() )
|
||||
{
|
||||
Cmdline_novbo = 1;
|
||||
|
||||
@@ -155,6 +155,5 @@ extern int Cmdline_reparse_mainhall;
|
||||
extern bool Cmdline_frame_profile;
|
||||
extern bool Cmdline_profile_write_file;
|
||||
extern bool Cmdline_no_unfocus_pause;
|
||||
extern bool Cmdline_output_json_data;
|
||||
|
||||
#endif
|
||||
@@ -956,9 +956,9 @@ void control_config_reset_defaults(int presetnum)
|
||||
|
||||
// Reset keyboard defaults
|
||||
for (i=0; i<CCFG_MAX; i++) {
|
||||
// Note that key_default and joy_default are NOT overwritten here;
|
||||
// they should retain the values of the first preset because
|
||||
// for example the key-pressed SEXP works off the defaults of the first preset
|
||||
// Note that key_default, joy_default and text_default are NOT
|
||||
// overwritten here; they should retain the values of the first preset
|
||||
Control_config[i].text = preset[i].text;
|
||||
Control_config[i].key_id = preset[i].key_default;
|
||||
Control_config[i].joy_id = preset[i].joy_default;
|
||||
Control_config[i].tab = preset[i].tab;
|
||||
@@ -2107,6 +2107,45 @@ void control_config_do_frame(float frametime)
|
||||
List_buttons[i++].disable();
|
||||
}
|
||||
|
||||
// If multiple controls presets are provided, display which one is in use
|
||||
if (Control_config_presets.size() > 1) {
|
||||
SCP_string preset_str;
|
||||
int matching_preset = -1;
|
||||
|
||||
for (i=0; i<(int)Control_config_presets.size(); i++) {
|
||||
bool this_preset_matches = true;
|
||||
config_item *this_preset = Control_config_presets[i];
|
||||
|
||||
for (int j=0; j<CCFG_MAX; j++) {
|
||||
if (!Control_config[j].disabled && Control_config[j].key_id != this_preset[j].key_default) {
|
||||
this_preset_matches = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (this_preset_matches) {
|
||||
matching_preset = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (matching_preset >= 0) {
|
||||
sprintf(preset_str, "Controls: %s", Control_config_preset_names[matching_preset].c_str());
|
||||
} else {
|
||||
sprintf(preset_str, "Controls: custom");
|
||||
|
||||
}
|
||||
|
||||
gr_get_string_size(&w, NULL, preset_str.c_str());
|
||||
gr_set_color_fast(&Color_text_normal);
|
||||
|
||||
if (gr_screen.res == GR_640) {
|
||||
gr_string(16, (24 - font_height) / 2, preset_str.c_str(), GR_RESIZE_MENU);
|
||||
} else {
|
||||
gr_string(24, (40 - font_height) / 2, preset_str.c_str(), GR_RESIZE_MENU);
|
||||
}
|
||||
}
|
||||
|
||||
// blit help overlay if active
|
||||
help_overlay_maybe_blit(Control_config_overlay_id, gr_screen.res);
|
||||
|
||||
@@ -2207,11 +2246,11 @@ int check_control_used(int id, int key)
|
||||
|
||||
// check what current modifiers are pressed
|
||||
mask = 0;
|
||||
if (keyd_pressed[KEY_LSHIFT] || key_down_count(KEY_LSHIFT) || keyd_pressed[KEY_RSHIFT] || key_down_count(KEY_RSHIFT)) {
|
||||
if (keyd_pressed[KEY_LSHIFT] || keyd_pressed[KEY_RSHIFT]) {
|
||||
mask |= KEY_SHIFTED;
|
||||
}
|
||||
|
||||
if (keyd_pressed[KEY_LALT] || key_down_count(KEY_LALT) || keyd_pressed[KEY_RALT] || key_down_count(KEY_RALT)) {
|
||||
if (keyd_pressed[KEY_LALT] || keyd_pressed[KEY_RALT]) {
|
||||
mask |= KEY_ALTED;
|
||||
}
|
||||
|
||||
@@ -2226,7 +2265,7 @@ int check_control_used(int id, int key)
|
||||
|
||||
z &= KEY_MASK;
|
||||
|
||||
if (keyd_pressed[z] || key_down_count(z)) {
|
||||
if (keyd_pressed[z]) {
|
||||
control_used(id);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -63,13 +63,14 @@ typedef struct config_item {
|
||||
short joy_default; //!< default joystick button bound to action
|
||||
char tab; //!< what tab (category) it belongs in
|
||||
bool hasXSTR; //!< whether we should translate this with an XSTR
|
||||
char *text; //!< describes the action in the config screen
|
||||
char *default_text; //!< default description of the action
|
||||
char type; //!< manner control should be checked in
|
||||
short key_id; //!< actual key bound to action
|
||||
short joy_id; //!< joystick button bound to action
|
||||
int used; //!< has control been used yet in mission? If so, this is the timestamp
|
||||
bool disabled; //!< whether this action should be available at all
|
||||
bool continuous_ongoing;//!< whether this action is a continuous one and is currently ongoing
|
||||
char *text; //!< overridable description of the action
|
||||
} config_item;
|
||||
|
||||
/*!
|
||||
@@ -292,6 +293,7 @@ extern int Control_config_overlay_id;
|
||||
|
||||
extern config_item Control_config[]; //!< Stores the keyboard configuration
|
||||
extern SCP_vector<config_item*> Control_config_presets; // tabled control presets; pointers to config_item arrays
|
||||
extern SCP_vector<SCP_string> Control_config_preset_names; // names for Control_config_presets (identical order of items)
|
||||
extern char **Scan_code_text;
|
||||
extern char **Joy_button_text;
|
||||
|
||||
|
||||
@@ -45,153 +45,153 @@ int Invert_axis_defaults[JOY_NUM_AXES] = { 0, 0, 0, 0, 0, 0 };
|
||||
//XSTR:OFF
|
||||
config_item Control_config[CCFG_MAX + 1] = {
|
||||
// targeting a ship
|
||||
{ KEY_T, -1, TARGET_TAB, true, "Target Next Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_T, -1, TARGET_TAB, true, "Target Previous Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_H, 2, TARGET_TAB, true, "Target Next Closest Hostile Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_H, -1, TARGET_TAB, true, "Target Previous Closest Hostile Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_H, -1, TARGET_TAB, true, "Toggle Auto Targeting", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_F, -1, TARGET_TAB, true, "Target Next Closest Friendly Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_F, -1, TARGET_TAB, true, "Target Previous Closest Friendly Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_Y, 4, TARGET_TAB, true, "Target Ship in Reticle", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_G, -1, TARGET_TAB, true, "Target Target's Nearest Attacker", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_Y, -1, TARGET_TAB, true, "Target Last Ship to Send Transmission", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_T, -1, TARGET_TAB, true, "Turn Off Targeting", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_T, -1, TARGET_TAB, true, "Target Next Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_T, -1, TARGET_TAB, true, "Target Previous Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_H, 2, TARGET_TAB, true, "Target Next Closest Hostile Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_H, -1, TARGET_TAB, true, "Target Previous Closest Hostile Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_H, -1, TARGET_TAB, true, "Toggle Auto Targeting", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_F, -1, TARGET_TAB, true, "Target Next Closest Friendly Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_F, -1, TARGET_TAB, true, "Target Previous Closest Friendly Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_Y, 4, TARGET_TAB, true, "Target Ship in Reticle", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_G, -1, TARGET_TAB, true, "Target Target's Nearest Attacker", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_Y, -1, TARGET_TAB, true, "Target Last Ship to Send Transmission", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_T, -1, TARGET_TAB, true, "Turn Off Targeting", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// targeting a ship's subsystem
|
||||
{ KEY_V, -1, TARGET_TAB, true, "Target Subsystem in Reticle", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_S, -1, TARGET_TAB, true, "Target Next Subsystem", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_S, -1, TARGET_TAB, true, "Target Previous Subsystem", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_S, -1, TARGET_TAB, true, "Turn Off Targeting of Subsystems", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_V, -1, TARGET_TAB, true, "Target Subsystem in Reticle", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_S, -1, TARGET_TAB, true, "Target Next Subsystem", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_S, -1, TARGET_TAB, true, "Target Previous Subsystem", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_S, -1, TARGET_TAB, true, "Turn Off Targeting of Subsystems", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// matching speed
|
||||
{ KEY_M, -1, COMPUTER_TAB, true, "Match Target Speed", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_M, -1, COMPUTER_TAB, true, "Toggle Auto Speed Matching", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_M, -1, COMPUTER_TAB, true, "Match Target Speed", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_M, -1, COMPUTER_TAB, true, "Toggle Auto Speed Matching", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// weapons
|
||||
{ KEY_LCTRL, 0, WEAPON_TAB, true, "Fire Primary Weapon", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_SPACEBAR, 1, WEAPON_TAB, true, "Fire Secondary Weapon", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PERIOD, -1, WEAPON_TAB, true, "Cycle Forward Primary Weapon", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_COMMA, -1, WEAPON_TAB, true, "Cycle Backward Primary Weapon", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_DIVIDE, -1, WEAPON_TAB, true, "Cycle Secondary Weapon Bank", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_DIVIDE, -1, WEAPON_TAB, true, "Cycle Secondary Weapon Firing Rate", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_X, 3, WEAPON_TAB, true, "Launch Countermeasure", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_LCTRL, 0, WEAPON_TAB, true, "Fire Primary Weapon", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SPACEBAR, 1, WEAPON_TAB, true, "Fire Secondary Weapon", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PERIOD, -1, WEAPON_TAB, true, "Cycle Forward Primary Weapon", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_COMMA, -1, WEAPON_TAB, true, "Cycle Backward Primary Weapon", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_DIVIDE, -1, WEAPON_TAB, true, "Cycle Secondary Weapon Bank", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_DIVIDE, -1, WEAPON_TAB, true, "Cycle Secondary Weapon Firing Rate", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_X, 3, WEAPON_TAB, true, "Launch Countermeasure", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// controls
|
||||
{ KEY_A, -1, SHIP_TAB, true, "Forward Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_Z, -1, SHIP_TAB, true, "Reverse Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PAD7, -1, SHIP_TAB, true, "Bank Left", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PAD9, -1, SHIP_TAB, true, "Bank Right", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PAD8, -1, SHIP_TAB, true, "Pitch Forward", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PAD2, -1, SHIP_TAB, true, "Pitch Backward", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PAD4, -1, SHIP_TAB, true, "Turn Left", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PAD6, -1, SHIP_TAB, true, "Turn Right", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_A, -1, SHIP_TAB, true, "Forward Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_Z, -1, SHIP_TAB, true, "Reverse Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD7, -1, SHIP_TAB, true, "Bank Left", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD9, -1, SHIP_TAB, true, "Bank Right", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD8, -1, SHIP_TAB, true, "Pitch Forward", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD2, -1, SHIP_TAB, true, "Pitch Backward", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD4, -1, SHIP_TAB, true, "Turn Left", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD6, -1, SHIP_TAB, true, "Turn Right", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// throttle controls
|
||||
{ KEY_BACKSP, -1, SHIP_TAB, true, "Set Throttle to Zero", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SLASH, -1, SHIP_TAB, true, "Set Throttle to Max", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_LBRACKET, -1, SHIP_TAB, true, "Set Throttle to One-Third", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_RBRACKET, -1, SHIP_TAB, true, "Set Throttle to Two-Thirds", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_EQUAL, -1, SHIP_TAB, true, "Increase Throttle 5 Percent", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_MINUS, -1, SHIP_TAB, true, "Decrease Throttle 5 Percent", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_BACKSP, -1, SHIP_TAB, true, "Set Throttle to Zero", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SLASH, -1, SHIP_TAB, true, "Set Throttle to Max", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_LBRACKET, -1, SHIP_TAB, true, "Set Throttle to One-Third", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_RBRACKET, -1, SHIP_TAB, true, "Set Throttle to Two-Thirds", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_EQUAL, -1, SHIP_TAB, true, "Increase Throttle 5 Percent", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_MINUS, -1, SHIP_TAB, true, "Decrease Throttle 5 Percent", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// squadmate messaging
|
||||
{ KEY_SHIFTED | KEY_A, -1, COMPUTER_TAB, true, "Attack My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_Z, -1, COMPUTER_TAB, true, "Disarm My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_D, -1, COMPUTER_TAB, true, "Disable My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_V, -1, COMPUTER_TAB, true, "Attack My Subsystem", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_X, -1, COMPUTER_TAB, true, "Capture My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_E, -1, COMPUTER_TAB, true, "Engage Enemy", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_W, -1, COMPUTER_TAB, true, "Form on My Wing", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_I, -1, COMPUTER_TAB, true, "Ignore My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_P, -1, COMPUTER_TAB, true, "Protect My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_C, -1, COMPUTER_TAB, true, "Cover Me", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_J, -1, COMPUTER_TAB, true, "Return to Base", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_R, -1, COMPUTER_TAB, true, "Rearm Me", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_A, -1, COMPUTER_TAB, true, "Attack My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_Z, -1, COMPUTER_TAB, true, "Disarm My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_D, -1, COMPUTER_TAB, true, "Disable My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_V, -1, COMPUTER_TAB, true, "Attack My Subsystem", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_X, -1, COMPUTER_TAB, true, "Capture My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_E, -1, COMPUTER_TAB, true, "Engage Enemy", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_W, -1, COMPUTER_TAB, true, "Form on My Wing", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_I, -1, COMPUTER_TAB, true, "Ignore My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_P, -1, COMPUTER_TAB, true, "Protect My Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_C, -1, COMPUTER_TAB, true, "Cover Me", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_J, -1, COMPUTER_TAB, true, "Return to Base", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_R, -1, COMPUTER_TAB, true, "Rearm Me", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
{ KEY_R, 6, TARGET_TAB, true, "Target Closest Attacking Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_R, 6, TARGET_TAB, true, "Target Closest Attacking Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// Views
|
||||
{ KEY_PADMULTIPLY, -1, COMPUTER_TAB, true, "Chase View", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_PADPERIOD, -1, COMPUTER_TAB, true, "External View", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_PADENTER, -1, COMPUTER_TAB, true, "Toggle External Camera Lock", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_PAD0, -1, COMPUTER_TAB, true, "Free Look View", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false }, // Not in use anymore (Swifty)
|
||||
{ KEY_PADDIVIDE, -1, COMPUTER_TAB, true, "Current Target View", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_PADPLUS, -1, COMPUTER_TAB, true, "Increase View Distance", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PADMINUS, -1, COMPUTER_TAB, true, "Decrease View Distance", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PAD5, -1, COMPUTER_TAB, true, "Center View", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ -1, 33, COMPUTER_TAB, true, "View Up", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ -1, 32, COMPUTER_TAB, true, "View Rear", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ -1, 34, COMPUTER_TAB, true, "View Left", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ -1, 35, COMPUTER_TAB, true, "View Right", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_PADMULTIPLY, -1, COMPUTER_TAB, true, "Chase View", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PADPERIOD, -1, COMPUTER_TAB, true, "External View", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PADENTER, -1, COMPUTER_TAB, true, "Toggle External Camera Lock", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD0, -1, COMPUTER_TAB, true, "Free Look View", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL }, // Not in use anymore (Swifty)
|
||||
{ KEY_PADDIVIDE, -1, COMPUTER_TAB, true, "Current Target View", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PADPLUS, -1, COMPUTER_TAB, true, "Increase View Distance", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PADMINUS, -1, COMPUTER_TAB, true, "Decrease View Distance", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAD5, -1, COMPUTER_TAB, true, "Center View", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ -1, 33, COMPUTER_TAB, true, "View Up", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ -1, 32, COMPUTER_TAB, true, "View Rear", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ -1, 34, COMPUTER_TAB, true, "View Left", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ -1, 35, COMPUTER_TAB, true, "View Right", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
|
||||
{ KEY_RAPOSTRO, -1, COMPUTER_TAB, true, "Cycle Radar Range", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_C, -1, COMPUTER_TAB, true, "Communications Menu", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ -1, -1, -1, true, "Show Objectives", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_J, -1, COMPUTER_TAB, true, "Enter Subspace (End Mission)", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_J, -1, TARGET_TAB, true, "Target Target's Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_TAB, 5, SHIP_TAB, true, "Afterburner", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_RAPOSTRO, -1, COMPUTER_TAB, true, "Cycle Radar Range", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_C, -1, COMPUTER_TAB, true, "Communications Menu", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ -1, -1, -1, true, "Show Objectives", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_J, -1, COMPUTER_TAB, true, "Enter Subspace (End Mission)", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_J, -1, TARGET_TAB, true, "Target Target's Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_TAB, 5, SHIP_TAB, true, "Afterburner", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
|
||||
{ KEY_INSERT, -1, COMPUTER_TAB, true, "Increase Weapon Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_DELETE, -1, COMPUTER_TAB, true, "Decrease Weapon Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_HOME, -1, COMPUTER_TAB, true, "Increase Shield Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_END, -1, COMPUTER_TAB, true, "Decrease Shield Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_PAGEUP, -1, COMPUTER_TAB, true, "Increase Engine Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_PAGEDOWN, -1, COMPUTER_TAB, true, "Decrease Engine Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_D, -1, COMPUTER_TAB, true, "Equalize Energy Settings", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_INSERT, -1, COMPUTER_TAB, true, "Increase Weapon Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_DELETE, -1, COMPUTER_TAB, true, "Decrease Weapon Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_HOME, -1, COMPUTER_TAB, true, "Increase Shield Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_END, -1, COMPUTER_TAB, true, "Decrease Shield Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAGEUP, -1, COMPUTER_TAB, true, "Increase Engine Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_PAGEDOWN, -1, COMPUTER_TAB, true, "Decrease Engine Energy", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_D, -1, COMPUTER_TAB, true, "Equalize Energy Settings", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
{ KEY_Q, 7, COMPUTER_TAB, true, "Equalize Shields", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_UP, -1, COMPUTER_TAB, true, "Augment Forward Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_DOWN, -1, COMPUTER_TAB, true, "Augment Rear Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_LEFT, -1, COMPUTER_TAB, true, "Augment Left Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_RIGHT, -1, COMPUTER_TAB, true, "Augment Right Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SCROLLOCK, -1, COMPUTER_TAB, true, "Transfer Energy Laser->Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_SCROLLOCK, -1, COMPUTER_TAB, true, "Transfer Energy Shield->Laser", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_Q, 7, COMPUTER_TAB, true, "Equalize Shields", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_UP, -1, COMPUTER_TAB, true, "Augment Forward Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_DOWN, -1, COMPUTER_TAB, true, "Augment Rear Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_LEFT, -1, COMPUTER_TAB, true, "Augment Left Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_RIGHT, -1, COMPUTER_TAB, true, "Augment Right Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SCROLLOCK, -1, COMPUTER_TAB, true, "Transfer Energy Laser->Shield", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_SCROLLOCK, -1, COMPUTER_TAB, true, "Transfer Energy Shield->Laser", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
// { -1, -1, -1, true, "Show Damage Popup Window" },
|
||||
|
||||
{ -1, -1, SHIP_TAB, false, "Glide When Pressed", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ -1, -1, SHIP_TAB, false, "Glide When Pressed", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
//Backslash -- this was a convenient place for Glide When Pressed, as Show Damage Popup isn't used
|
||||
{ -1, -1, SHIP_TAB, true, "Bank When Pressed", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ -1, -1, -1, true, "Show Nav Map", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_E, -1, COMPUTER_TAB, true, "Add or Remove Escort", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_SHIFTED | KEY_E, -1, COMPUTER_TAB, true, "Clear Escort List", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_E, -1, TARGET_TAB, true, "Target Next Escort Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_R, -1, TARGET_TAB, true, "Target Closest Repair Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ -1, -1, SHIP_TAB, true, "Bank When Pressed", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ -1, -1, -1, true, "Show Nav Map", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_E, -1, COMPUTER_TAB, true, "Add or Remove Escort", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_SHIFTED | KEY_E, -1, COMPUTER_TAB, true, "Clear Escort List", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_E, -1, TARGET_TAB, true, "Target Next Escort Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_R, -1, TARGET_TAB, true, "Target Closest Repair Ship", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
{ KEY_U, -1, TARGET_TAB, true, "Target Next Uninspected Cargo", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_U, -1, TARGET_TAB, true, "Target Previous Uninspected Cargo", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_N, -1, TARGET_TAB, true, "Target Newest Ship in Area", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_K, -1, TARGET_TAB, true, "Target Next Live Turret", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_K, -1, TARGET_TAB, true, "Target Previous Live Turret", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_U, -1, TARGET_TAB, true, "Target Next Uninspected Cargo", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_U, -1, TARGET_TAB, true, "Target Previous Uninspected Cargo", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_N, -1, TARGET_TAB, true, "Target Newest Ship in Area", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_K, -1, TARGET_TAB, true, "Target Next Live Turret", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_K, -1, TARGET_TAB, true, "Target Previous Live Turret", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
{ KEY_B, -1, TARGET_TAB, true, "Target Next Hostile Bomb or Bomber", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_B, -1, TARGET_TAB, true, "Target Previous Hostile Bomb or Bomber", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_B, -1, TARGET_TAB, true, "Target Next Hostile Bomb or Bomber", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_B, -1, TARGET_TAB, true, "Target Previous Hostile Bomb or Bomber", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// multiplayer messaging keys
|
||||
{ KEY_1, -1, COMPUTER_TAB, true, "(Multiplayer) Message All", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_2, -1, COMPUTER_TAB, true, "(Multiplayer) Message Friendly", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_3, -1, COMPUTER_TAB, true, "(Multiplayer) Message Hostile", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_4, -1, COMPUTER_TAB, true, "(Multiplayer) Message Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_X, -1, COMPUTER_TAB, true, "(Multiplayer) Observer Zoom to Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_PERIOD, -1, COMPUTER_TAB, true, "Increase Time Compression", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_COMMA, -1, COMPUTER_TAB, true, "Decrease Time Compression", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_L, -1, COMPUTER_TAB, true, "Toggle High HUD Contrast", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_N, -1, COMPUTER_TAB, true, "(Multiplayer) Toggle Network Info", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_END, -1, COMPUTER_TAB, true, "(Multiplayer) Self Destruct", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_1, -1, COMPUTER_TAB, true, "(Multiplayer) Message All", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_2, -1, COMPUTER_TAB, true, "(Multiplayer) Message Friendly", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_3, -1, COMPUTER_TAB, true, "(Multiplayer) Message Hostile", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_4, -1, COMPUTER_TAB, true, "(Multiplayer) Message Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_X, -1, COMPUTER_TAB, true, "(Multiplayer) Observer Zoom to Target", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_PERIOD, -1, COMPUTER_TAB, true, "Increase Time Compression", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_COMMA, -1, COMPUTER_TAB, true, "Decrease Time Compression", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_L, -1, COMPUTER_TAB, true, "Toggle High HUD Contrast", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_N, -1, COMPUTER_TAB, true, "(Multiplayer) Toggle Network Info", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_END, -1, COMPUTER_TAB, true, "(Multiplayer) Self Destruct", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
|
||||
// Misc
|
||||
{ KEY_SHIFTED | KEY_O, -1, COMPUTER_TAB, true, "Toggle HUD", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_3, -1, SHIP_TAB, true, "Right Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_1, -1, SHIP_TAB, true, "Left Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_PADPLUS, -1, SHIP_TAB, true, "Up Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_SHIFTED | KEY_PADENTER, -1, SHIP_TAB, true, "Down Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_SHIFTED | KEY_Q, -1, COMPUTER_TAB, true, "Toggle HUD Wireframe Target View", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ -1, -1, COMPUTER_TAB, false, "Top-Down View", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ -1, -1, COMPUTER_TAB, false, "Target Padlock View", CC_TYPE_TRIGGER, -1, -1, 0, false, false }, // (Swifty) Toggle for VM_TRACK
|
||||
{ KEY_SHIFTED | KEY_O, -1, COMPUTER_TAB, true, "Toggle HUD", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_3, -1, SHIP_TAB, true, "Right Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_1, -1, SHIP_TAB, true, "Left Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_PADPLUS, -1, SHIP_TAB, true, "Up Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_SHIFTED | KEY_PADENTER, -1, SHIP_TAB, true, "Down Thrust", CC_TYPE_CONTINUOUS, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_SHIFTED | KEY_Q, -1, COMPUTER_TAB, true, "Toggle HUD Wireframe Target View", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ -1, -1, COMPUTER_TAB, false, "Top-Down View", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ -1, -1, COMPUTER_TAB, false, "Target Padlock View", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL }, // (Swifty) Toggle for VM_TRACK
|
||||
// Auto Navigation Systen
|
||||
{ KEY_ALTED | KEY_A, -1, COMPUTER_TAB, false, "Toggle Auto Pilot", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_N, -1, COMPUTER_TAB, false, "Cycle Nav Points", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_G, -1, SHIP_TAB, false, "Toggle Gliding", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_O, -1, WEAPON_TAB, false, "Cycle Primary Weapon Firing Rate", CC_TYPE_TRIGGER, -1, -1, 0, false, false },
|
||||
{ KEY_ALTED | KEY_A, -1, COMPUTER_TAB, false, "Toggle Auto Pilot", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_N, -1, COMPUTER_TAB, false, "Cycle Nav Points", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_ALTED | KEY_G, -1, SHIP_TAB, false, "Toggle Gliding", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ KEY_O, -1, WEAPON_TAB, false, "Cycle Primary Weapon Firing Rate", CC_TYPE_TRIGGER, -1, -1, 0, false, false, NULL },
|
||||
{ -1, -1, -1, false, "", CC_TYPE_TRIGGER, -1, -1, 0, false, false }
|
||||
};
|
||||
|
||||
@@ -404,6 +404,7 @@ char **Scan_code_text = Scan_code_text_english;
|
||||
char **Joy_button_text = Joy_button_text_english;
|
||||
|
||||
SCP_vector<config_item*> Control_config_presets;
|
||||
SCP_vector<SCP_string> Control_config_preset_names;
|
||||
|
||||
void set_modifier_status()
|
||||
{
|
||||
@@ -591,6 +592,9 @@ void control_config_common_init()
|
||||
for (int i=0; i<CCFG_MAX; i++) {
|
||||
Control_config[i].disabled = false;
|
||||
Control_config[i].continuous_ongoing = false;
|
||||
|
||||
// init the overridable description with a copy of the default
|
||||
Control_config[i].text = strdup(Control_config[i].default_text);
|
||||
}
|
||||
|
||||
control_config_common_load_overrides();
|
||||
@@ -811,6 +815,14 @@ void control_config_common_load_overrides()
|
||||
std::copy(Control_config, Control_config + CCFG_MAX + 1, cfg_preset);
|
||||
Control_config_presets.push_back(cfg_preset);
|
||||
|
||||
SCP_string preset_name;
|
||||
if (optional_string("$Name:")) {
|
||||
stuff_string_line(preset_name);
|
||||
} else {
|
||||
preset_name = "<unnamed preset>";
|
||||
}
|
||||
Control_config_preset_names.push_back(preset_name);
|
||||
|
||||
while (required_string_either("#End","$Bind Name:")) {
|
||||
const int iBufferLength = 64;
|
||||
char szTempBuffer[iBufferLength];
|
||||
@@ -822,7 +834,7 @@ void control_config_common_load_overrides()
|
||||
for (size_t i = 0; i < cCntrlAryLength; ++i) {
|
||||
config_item& r_ccConfig = cfg_preset[i];
|
||||
|
||||
if (!strcmp(szTempBuffer, r_ccConfig.text)) {
|
||||
if (!strcmp(szTempBuffer, r_ccConfig.default_text)) {
|
||||
/**
|
||||
* short key_default;
|
||||
* short joy_default;
|
||||
@@ -833,6 +845,11 @@ void control_config_common_load_overrides()
|
||||
|
||||
int iTemp;
|
||||
|
||||
if (optional_string("$New Name:")) {
|
||||
stuff_string(szTempBuffer, F_NAME, iBufferLength);
|
||||
r_ccConfig.text = strdup(szTempBuffer);
|
||||
}
|
||||
|
||||
if (optional_string("$Key Default:")) {
|
||||
if (optional_string("NONE")) {
|
||||
r_ccConfig.key_default = (short)-1;
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
|
||||
extern int Game_mode;
|
||||
|
||||
const char *movie_ext_list[] = { ".ogg", ".mve" };
|
||||
const int NUM_MOVIE_EXT = sizeof(movie_ext_list) / sizeof(char*);
|
||||
|
||||
|
||||
#define MOVIE_NONE -1
|
||||
#define MOVIE_OGG 0
|
||||
@@ -42,8 +45,6 @@ int movie_find(char *filename, char *out_name)
|
||||
char full_path[MAX_PATH];
|
||||
char tmp_name[MAX_PATH];
|
||||
int size, offset = 0;
|
||||
const int NUM_EXT = 2;
|
||||
const char *movie_ext[NUM_EXT] = { ".ogg", ".mve" };
|
||||
|
||||
if (out_name == NULL)
|
||||
return MOVIE_NONE;
|
||||
@@ -57,7 +58,7 @@ int movie_find(char *filename, char *out_name)
|
||||
char *p = strrchr(tmp_name, '.');
|
||||
if ( p ) *p = 0;
|
||||
|
||||
int rc = cf_find_file_location_ext(tmp_name, NUM_EXT, movie_ext, CF_TYPE_ANY, sizeof(full_path) - 1, full_path, &size, &offset, 0);
|
||||
int rc = cf_find_file_location_ext(tmp_name, NUM_MOVIE_EXT, movie_ext_list, CF_TYPE_ANY, sizeof(full_path) - 1, full_path, &size, &offset, 0);
|
||||
|
||||
if (rc == MOVIE_NONE)
|
||||
return MOVIE_NONE;
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
#ifndef _MOVIE_HEADER_FILE
|
||||
#define _MOVIE_HEADER_FILE
|
||||
|
||||
extern const char *movie_ext_list[];
|
||||
extern const int NUM_MOVIE_EXT;
|
||||
|
||||
bool movie_play(char *name);
|
||||
void movie_play_two(char *name1, char *name2);
|
||||
|
||||
|
||||
@@ -926,6 +926,10 @@ int debris_check_collision(object *pdebris, object *other_obj, vec3d *hitpos, co
|
||||
// reset flags to check MC_CHECK_MODEL | MC_CHECK_SPHERELINE and maybe MC_CHECK_INVISIBLE_FACES and MC_SUBMODEL_INSTANCE
|
||||
mc.flags = copy_flags | MC_SUBMODEL_INSTANCE;
|
||||
|
||||
if (Ship_info[Ships[ship_obj->instance].ship_info_index].collision_lod > -1) {
|
||||
mc.lod = Ship_info[Ships[ship_obj->instance].ship_info_index].collision_lod;
|
||||
}
|
||||
|
||||
// check each submodel in turn
|
||||
for (smv = submodel_vector.begin(); smv != submodel_vector.end(); ++smv) {
|
||||
// turn on submodel for collision test
|
||||
|
||||
@@ -9,10 +9,8 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/////////////////
|
||||
// Testing Goals
|
||||
// Breakpoints are set at places that need testing:
|
||||
// * the value of endptr strtol and strtoul needs to investigated, according to cplusplus.com, *endptr = end of the string that was successfully converted
|
||||
// TODO: Make a fast version of the parse_long, parse_ulong, etc. That just checks the first 1-3 characters. The fast version will be used in retail builds while the slow/safe version will be in debug's
|
||||
// @todo Make a fast version of the parse_long, parse_ulong, etc. That just checks the first 1-3 characters. The fast version will be used in retail builds while the slow/safe version will be in debug's
|
||||
// @todo Maybe make parser functions case-insensitive
|
||||
////////////////
|
||||
#include "debugconsole/consoleparse.h"
|
||||
|
||||
@@ -466,7 +464,7 @@ void dc_required_string(char *pstr)
|
||||
|
||||
dc_ignore_gray_space();
|
||||
|
||||
if (strnicmp(pstr, Cp, strlen(pstr))) {
|
||||
if (strncmp(pstr, Cp, strlen(pstr)) == 0) {
|
||||
str_found = pstr;
|
||||
}
|
||||
|
||||
@@ -492,10 +490,10 @@ int dc_required_string_either(char *str1, char *str2)
|
||||
|
||||
dc_ignore_gray_space();
|
||||
|
||||
if (strncmp(str1, Cp, strlen(str1) == 0)) {
|
||||
if (strncmp(str1, Cp, strlen(str1)) == 0) {
|
||||
str_found = str1;
|
||||
i = 0;
|
||||
} else if (strncmp(str2, Cp, strlen(str2) == 0)) {
|
||||
} else if (strncmp(str2, Cp, strlen(str2)) == 0) {
|
||||
str_found = str2;
|
||||
i = 1;
|
||||
}
|
||||
@@ -563,7 +561,7 @@ bool dc_optional_string(const char *pstr)
|
||||
{
|
||||
dc_ignore_gray_space();
|
||||
|
||||
if (strncmp(pstr, Cp, strlen(pstr) != 0)) {
|
||||
if (strncmp(pstr, Cp, strlen(pstr)) != 0) {
|
||||
return false;
|
||||
} // Else, optional string was found
|
||||
|
||||
|
||||
+226
-226
File diff suppressed because it is too large.
Load diff
@@ -1482,7 +1482,7 @@ int game_start_mission()
|
||||
|
||||
int e1 = timer_get_milliseconds();
|
||||
|
||||
printf("Level load took %f seconds.\n", (e1 - s1) / 1000.0f );
|
||||
mprintf(("Level load took %f seconds.\n", (e1 - s1) / 1000.0f ));
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -7127,13 +7127,6 @@ int game_main(char *cmdline)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// maybe output parsed table objects, and exit
|
||||
if (Cmdline_output_json_data) {
|
||||
ship_output_json("ships.json");
|
||||
weapons_output_json("weapons.json");
|
||||
game_shutdown();
|
||||
return 0;
|
||||
}
|
||||
|
||||
// maybe spew VP CRCs, and exit
|
||||
if (Cmdline_verify_vps) {
|
||||
|
||||
@@ -336,8 +336,8 @@ END
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,7,1,000000
|
||||
PRODUCTVERSION 3,7,1,000000
|
||||
FILEVERSION 3,7,3,000000
|
||||
PRODUCTVERSION 3,7,3,000000
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@@ -354,12 +354,12 @@ BEGIN
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Volition Inc."
|
||||
VALUE "FileDescription", "FreeSpace 2 Open"
|
||||
VALUE "FileVersion", "3.7.1.000000"
|
||||
VALUE "FileVersion", "3.7.3.000000"
|
||||
VALUE "InternalName", "FreeSpace 2 Open"
|
||||
VALUE "LegalCopyright", "Copyright © 1998"
|
||||
VALUE "OriginalFilename", "fs2.exe"
|
||||
VALUE "ProductName", "FreeSpace 2 Open"
|
||||
VALUE "ProductVersion", "3.7.1"
|
||||
VALUE "ProductVersion", "3.7.3"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
||||
@@ -28,15 +28,14 @@
|
||||
|
||||
#pragma optimize("", off)
|
||||
|
||||
#define DEFAULT_MASTER_EVENT_MUSIC_VOLUME 0.5f
|
||||
|
||||
#define HULL_VALUE_TO_PLAY_INTENSE_BATTLE_MUSIC 0.75f
|
||||
|
||||
////////////////////////////
|
||||
// Globals
|
||||
////////////////////////////
|
||||
int Event_Music_battle_started = 0;
|
||||
float Master_event_music_volume = DEFAULT_MASTER_EVENT_MUSIC_VOLUME; // range is 0->1
|
||||
float Default_music_volume = 0.5f; // range is 0->1
|
||||
float Master_event_music_volume = Default_music_volume;
|
||||
|
||||
typedef struct tagSNDPATTERN {
|
||||
int default_next_pattern; // Needed so the next_pattern member can be reset
|
||||
@@ -594,7 +593,7 @@ void event_music_level_init(int force_soundtrack)
|
||||
{
|
||||
if (!strnicmp(strack->pattern_fnames[i], NOX("none.wav"), 4))
|
||||
{
|
||||
Patterns[i].handle = -1;
|
||||
Patterns[i].handle = -1;
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1360,10 +1359,8 @@ void parse_menumusic()
|
||||
|
||||
// Goober5000 - check for existence of file
|
||||
// taylor - check for all file types
|
||||
const int NUM_EXT = 2;
|
||||
const char *exts[NUM_EXT] = { ".ogg", ".wav" };
|
||||
|
||||
if ( cf_exists_full_ext(Spooled_music[idx].filename, CF_TYPE_MUSIC, NUM_EXT, exts) )
|
||||
// chief1983 - use type list defined in audiostr.h
|
||||
if ( cf_exists_full_ext(Spooled_music[idx].filename, CF_TYPE_MUSIC, NUM_AUDIO_EXT, audio_ext_list) )
|
||||
Spooled_music[idx].flags |= SMF_VALID;
|
||||
|
||||
if (!nocreate)
|
||||
@@ -1383,7 +1380,7 @@ void event_music_parse_musictbl(const char *filename)
|
||||
|
||||
} else {
|
||||
read_file_text(filename, CF_TYPE_TABLES);
|
||||
reset_parse();
|
||||
reset_parse();
|
||||
|
||||
while ( skip_to_start_of_string_either("#Soundtrack Start", "#Menu Music Start", NULL ) )
|
||||
{
|
||||
|
||||
@@ -41,7 +41,8 @@
|
||||
|
||||
extern int Event_Music_battle_started; // flag that will tell us if we've started a battle in the current mission
|
||||
extern int Event_music_enabled;
|
||||
extern float Master_event_music_volume; // range is 0->1
|
||||
extern float Default_music_volume; // range is 0->1
|
||||
extern float Master_event_music_volume; // range is 0->1
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
#define FS_VERSION_MAJOR 3 // major version
|
||||
#define FS_VERSION_MINOR 7 // increase by 1 for minor revs
|
||||
#define FS_VERSION_BUILD 1 // bugfix release
|
||||
#define FS_VERSION_BUILD 3 // bugfix release
|
||||
#define FS_VERSION_REVIS 000000 // SVN revision
|
||||
//#define FS_VERSION_IDENT NOX("custom") // special build release identifier, must be a string (don't define unless it's supposed to be used!!)
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "io/keycontrol.h" // m!m
|
||||
#include "debugconsole/console.h"
|
||||
#include "debugconsole/console.h"
|
||||
#include "popup/popup.h"
|
||||
|
||||
|
||||
#if defined(SCP_UNIX) && !defined(__APPLE__)
|
||||
@@ -83,7 +84,7 @@ int gr_alpha_test = 0;
|
||||
|
||||
// Default clipping distances
|
||||
const float Default_min_draw_distance = 1.0f;
|
||||
const float Default_max_draw_distance = 1e10;
|
||||
const float Default_max_draw_distance = 10000000.0f;
|
||||
float Min_draw_distance = Default_min_draw_distance;
|
||||
float Max_draw_distance = Default_max_draw_distance;
|
||||
|
||||
@@ -1771,7 +1772,7 @@ void gr_set_bitmap(int bitmap_num, int alphablend_mode, int bitblt_mode, float a
|
||||
void gr_flip()
|
||||
{
|
||||
// m!m avoid running CHA_ONFRAME when the "Quit mission" popup is shown. See mantis 2446 for reference
|
||||
if (!quit_mission_popup_shown)
|
||||
if (!quit_mission_popup_shown && !popup_active())
|
||||
{
|
||||
//WMC - Evaluate global hook if not override.
|
||||
Script_system.RunBytecode(Script_globalhook);
|
||||
|
||||
@@ -20,6 +20,17 @@
|
||||
//we check background type to avoid messed up colours for ANI
|
||||
#define ANI_BPP_CHECK (ga->ani.bg_type == BM_TYPE_PCX) ? 16 : 32
|
||||
|
||||
// These two functions find if a bitmap or animation exists by filename, no extension needed.
|
||||
bool generic_bitmap_exists(const char *filename)
|
||||
{
|
||||
return cf_exists_full_ext(filename, CF_TYPE_ANY, BM_NUM_TYPES, bm_ext_list);
|
||||
}
|
||||
|
||||
bool generic_anim_exists(const char *filename)
|
||||
{
|
||||
return cf_exists_full_ext(filename, CF_TYPE_ANY, BM_ANI_NUM_TYPES, bm_ani_ext_list);
|
||||
}
|
||||
|
||||
// Goober5000
|
||||
int generic_anim_init_and_stream(generic_anim *anim, const char *anim_filename, ubyte bg_type, bool attempt_hi_res)
|
||||
{
|
||||
@@ -209,13 +220,19 @@ int generic_anim_stream(generic_anim *ga)
|
||||
ga->previous_frame = -1;
|
||||
}
|
||||
else {
|
||||
bool in_subdir;
|
||||
bpp = 32;
|
||||
if(ga->use_hud_color)
|
||||
bpp = 8;
|
||||
bm_load_and_parse_eff(ga->filename, CF_TYPE_ANY, &ga->num_frames, &anim_fps, &ga->keyframe, 0);
|
||||
bm_load_and_parse_eff(ga->filename, CF_TYPE_ANY, &ga->num_frames, &anim_fps, &ga->keyframe, 0, &in_subdir);
|
||||
char *p = strrchr( ga->filename, '.' );
|
||||
if ( p )
|
||||
*p = 0;
|
||||
|
||||
if (in_subdir) {
|
||||
set_temp_subdir_pathtype(ga->filename);
|
||||
}
|
||||
|
||||
char frame_name[32];
|
||||
snprintf(frame_name, 32, "%s_0000", ga->filename);
|
||||
ga->bitmap_id = bm_load(frame_name);
|
||||
|
||||
@@ -52,6 +52,8 @@ typedef struct generic_bitmap {
|
||||
int bitmap_id;
|
||||
} generic_bitmap;
|
||||
|
||||
bool generic_bitmap_exists(const char *filename);
|
||||
bool generic_anim_exists(const char *filename);
|
||||
int generic_anim_init_and_stream(generic_anim *anim, const char *anim_filename, ubyte bg_type, bool attempt_hi_res);
|
||||
void generic_anim_init(generic_anim *ga);
|
||||
void generic_anim_init(generic_anim *ga, const char *filename);
|
||||
|
||||
@@ -704,7 +704,7 @@ static bool opengl_post_init_table()
|
||||
|
||||
|
||||
if (optional_string("#Effects")) {
|
||||
while ( !required_string_3("$Name:", "#Ship Effects", "#End") ) {
|
||||
while ( !required_string_one_of(3, "$Name:", "#Ship Effects", "#End") ) {
|
||||
char tbuf[NAME_LENGTH+1] = { 0 };
|
||||
post_effect_t eff;
|
||||
|
||||
@@ -752,7 +752,7 @@ static bool opengl_post_init_table()
|
||||
Ship_effects.push_back(se1);
|
||||
|
||||
if (optional_string("#Ship Effects")) {
|
||||
while ( !required_string_3("$Name:", "#Light Shafts", "#End") ) {
|
||||
while ( !required_string_one_of(3, "$Name:", "#Light Shafts", "#End") ) {
|
||||
ship_effect se;
|
||||
char tbuf[NAME_LENGTH] = { 0 };
|
||||
|
||||
|
||||
@@ -192,6 +192,10 @@ int gr_opengl_create_stream_buffer()
|
||||
{
|
||||
opengl_vertex_buffer buffer;
|
||||
|
||||
if ( !Use_VBOs ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
vglGenBuffersARB(1, &buffer.vbo);
|
||||
|
||||
GL_vertex_buffers.push_back(buffer);
|
||||
|
||||
+1
-54
@@ -151,49 +151,6 @@ int Supernova_coords[GR_NUM_RESOLUTIONS][2] = {
|
||||
}
|
||||
};
|
||||
|
||||
// used to draw the kills gauge
|
||||
hud_frames Kills_gauge;
|
||||
int Kills_gauge_loaded = 0;
|
||||
int Kills_gauge_coords[GR_NUM_RESOLUTIONS][2] = {
|
||||
{ // GR_640
|
||||
497, 361
|
||||
},
|
||||
{ // GR_1024
|
||||
880, 624
|
||||
}
|
||||
};
|
||||
int Kills_text_coords[GR_NUM_RESOLUTIONS][2] = {
|
||||
{ // GR_640
|
||||
503, 365
|
||||
},
|
||||
{ // GR_1024
|
||||
886, 628
|
||||
}
|
||||
};
|
||||
|
||||
int Kills_text_val_coords_gr[GR_NUM_RESOLUTIONS][2] = {
|
||||
{ // GR_640
|
||||
615, 365
|
||||
},
|
||||
{ // GR_1024
|
||||
984, 628
|
||||
}
|
||||
};
|
||||
|
||||
int Kills_text_val_coords[GR_NUM_RESOLUTIONS][2] = {
|
||||
{ // GR_640
|
||||
571, 365
|
||||
},
|
||||
{ // GR_1024
|
||||
954, 628
|
||||
}
|
||||
};
|
||||
|
||||
char Kills_fname[GR_NUM_RESOLUTIONS][MAX_FILENAME_LEN] = {
|
||||
"kills1",
|
||||
"kills1"
|
||||
};
|
||||
|
||||
// used to draw the hud support view
|
||||
static int Hud_support_view_active;
|
||||
static int Hud_support_view_abort; // active when we need to display abort message
|
||||
@@ -237,7 +194,6 @@ int hud_subspace_notify_active();
|
||||
int hud_objective_notify_active();
|
||||
void hud_subspace_notify_abort();
|
||||
void hud_maybe_display_subspace_notify();
|
||||
void hud_init_kills_gauge();
|
||||
int hud_maybe_render_emp_icon();
|
||||
void hud_init_emp_icon();
|
||||
|
||||
@@ -1134,7 +1090,7 @@ bool HudGauge::canRender()
|
||||
}
|
||||
|
||||
if (gauge_config == HUD_ETS_GAUGE) {
|
||||
if (Ships[Player_obj->instance].flags2 & SF2_NO_ETS) {
|
||||
if (Ships[Player_obj->instance].flags2 & SF2_NO_ETS && !Show_disabled_ets_gauges) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1223,7 +1179,6 @@ void HUD_init()
|
||||
hud_init_wingman_status_gauge();
|
||||
hud_init_target_static();
|
||||
hud_init_text_flash_gauge();
|
||||
hud_init_kills_gauge();
|
||||
hud_stop_subspace_notify();
|
||||
hud_stop_objective_notify();
|
||||
hud_target_last_transmit_level_init();
|
||||
@@ -2571,14 +2526,6 @@ void HudGaugeLag::render(float frametime)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Obsolete initializer for the kills gauge. Now superseded by the new HUD code.
|
||||
*/
|
||||
void hud_init_kills_gauge()
|
||||
{
|
||||
Kills_gauge_loaded = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Called at mission start to init data, and load support view bitmap if required
|
||||
*/
|
||||
|
||||
@@ -420,6 +420,10 @@ int hud_abort_lock()
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( Player_ship->flags2 & SF2_NO_SECONDARY_LOCKON ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// if we're on the same team and the team doesn't attack itself, then don't lock!
|
||||
if ((Player_ship->team == target_team) && (!iff_x_attacks_y(Player_ship->team, target_team)))
|
||||
{
|
||||
|
||||
@@ -46,6 +46,7 @@ int Hud_reticle_style = HUD_RETICLE_STYLE_FS2;
|
||||
|
||||
bool Hud_retail = true;
|
||||
bool Scale_retail_gauges = true;
|
||||
bool Show_disabled_ets_gauges = false;
|
||||
|
||||
int Hud_font = -1;
|
||||
|
||||
@@ -261,6 +262,10 @@ void parse_hud_gauges_tbl(const char *filename)
|
||||
Hud_reticle_style = temp;
|
||||
}
|
||||
|
||||
if (optional_string("$Show disabled ETS gauges:")) {
|
||||
stuff_boolean(&Show_disabled_ets_gauges);
|
||||
}
|
||||
|
||||
int base_res[2];
|
||||
int ship_idx = -1;
|
||||
int ship_font = -1;
|
||||
@@ -2006,6 +2011,7 @@ void load_gauge_center_reticle(int base_w, int base_h, int hud_font, bool scale_
|
||||
int scaleX = 15;
|
||||
int scaleY = 10;
|
||||
int size = 5;
|
||||
int autoaim_frame = -1;
|
||||
|
||||
if(Hud_reticle_style == HUD_RETICLE_STYLE_FS1) {
|
||||
if(gr_screen.res == GR_640) {
|
||||
@@ -2055,8 +2061,12 @@ void load_gauge_center_reticle(int base_w, int base_h, int hud_font, bool scale_
|
||||
if (optional_string("Firepoint Y coordinate multiplier:"))
|
||||
stuff_int(&scaleY);
|
||||
|
||||
if(optional_string("Autoaim Frame:"))
|
||||
stuff_int(&autoaim_frame);
|
||||
|
||||
hud_gauge->initBitmaps(fname);
|
||||
hud_gauge->initFirepointDisplay(firepoints, scaleX, scaleY, size);
|
||||
hud_gauge->setAutoaimFrame(autoaim_frame);
|
||||
|
||||
if(ship_idx->at(0) >= 0) {
|
||||
for (SCP_vector<int>::iterator ship_index = ship_idx->begin(); ship_index != ship_idx->end(); ++ship_index) {
|
||||
|
||||
@@ -20,6 +20,7 @@ extern float Hud_speed_multiplier;
|
||||
#define HUD_RETICLE_STYLE_FS2 1
|
||||
|
||||
extern int Hud_reticle_style;
|
||||
extern bool Show_disabled_ets_gauges;
|
||||
|
||||
//Functions
|
||||
int hud_get_gauge_index(char* name);
|
||||
|
||||
+66
-12
@@ -20,6 +20,7 @@
|
||||
#include "weapon/emp.h"
|
||||
#include "localization/localize.h"
|
||||
#include "network/multi.h"
|
||||
#include "weapon/weapon.h"
|
||||
|
||||
#define NUM_RETICLE_ANIS 11 // keep up to date when modifying the number of reticle ani files
|
||||
|
||||
@@ -228,6 +229,7 @@ static int Threat_lock_frame; // frame offset of current lock flashing warnin
|
||||
HudGaugeReticle::HudGaugeReticle():
|
||||
HudGauge(HUD_OBJECT_CENTER_RETICLE, HUD_CENTER_RETICLE, true, false, (VM_EXTERNAL | VM_DEAD_VIEW | VM_WARP_CHASE | VM_PADLOCK_ANY | VM_TOPDOWN | VM_OTHER_SHIP), 255, 255, 255)
|
||||
{
|
||||
has_autoaim_lock = false;
|
||||
}
|
||||
|
||||
void HudGaugeReticle::initBitmaps(char *fname)
|
||||
@@ -247,9 +249,39 @@ void HudGaugeReticle::initFirepointDisplay(bool firepoint, int scaleX, int scale
|
||||
|
||||
void HudGaugeReticle::render(float frametime)
|
||||
{
|
||||
ship_info *sip = &Ship_info[Player_ship->ship_info_index];
|
||||
|
||||
if (autoaim_frame_offset > 0 || sip->autoaim_lock_snd > -1 || sip->autoaim_lost_snd > -1) {
|
||||
ship *shipp = &Ships[Objects[Player->objnum].instance];
|
||||
ship_weapon *swp = &shipp->weapons;
|
||||
ai_info *aip = &Ai_info[shipp->ai_index];
|
||||
|
||||
if (aip->target_objnum != -1) {
|
||||
bool autoaiming = false;
|
||||
|
||||
autoaiming = in_autoaim_fov(shipp, swp->current_primary_bank, &Objects[aip->target_objnum]);
|
||||
|
||||
if (autoaiming) {
|
||||
if (!has_autoaim_lock && sip->autoaim_lock_snd > -1) {
|
||||
snd_play( &Snds[sip->autoaim_lock_snd]);
|
||||
}
|
||||
has_autoaim_lock = true;
|
||||
}
|
||||
else {
|
||||
if (has_autoaim_lock && sip->autoaim_lost_snd > -1) {
|
||||
snd_play( &Snds[sip->autoaim_lost_snd]);
|
||||
}
|
||||
has_autoaim_lock = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setGaugeColor(HUD_C_BRIGHT);
|
||||
|
||||
renderBitmap(crosshair.first_frame, position[0], position[1]);
|
||||
if (has_autoaim_lock)
|
||||
renderBitmap(crosshair.first_frame + autoaim_frame_offset, position[0], position[1]);
|
||||
else
|
||||
renderBitmap(crosshair.first_frame, position[0], position[1]);
|
||||
|
||||
if (firepoint_display) {
|
||||
fp.clear();
|
||||
@@ -277,7 +309,7 @@ void HudGaugeReticle::render(float frametime)
|
||||
|
||||
void HudGaugeReticle::getFirepointStatus() {
|
||||
//First, get the player ship
|
||||
ship_info* pship;
|
||||
ship_info* sip;
|
||||
ship* shipp;
|
||||
polymodel* pm;
|
||||
|
||||
@@ -285,30 +317,45 @@ void HudGaugeReticle::getFirepointStatus() {
|
||||
|
||||
if (Objects[Player->objnum].type == OBJ_SHIP) {
|
||||
shipp = &Ships[Objects[Player->objnum].instance];
|
||||
pship = &Ship_info[shipp->ship_info_index];
|
||||
sip = &Ship_info[shipp->ship_info_index];
|
||||
|
||||
//Get the player eyepoint
|
||||
pm = model_get(pship->model_num);
|
||||
pm = model_get(sip->model_num);
|
||||
|
||||
if (pm->n_view_positions == 0) {
|
||||
mprintf(("Model %s does not have a defined eyepoint. Firepoint display could not be generated\n", pm->filename));
|
||||
} else {
|
||||
if (pm->n_guns > 0) {
|
||||
|
||||
if (pm->n_guns > 0) {
|
||||
eye eyepoint = pm->view_positions[shipp->current_viewpoint];
|
||||
vec2d ep = { eyepoint.pnt.xyz.x, eyepoint.pnt.xyz.y };
|
||||
|
||||
for (int i = 0; i < pm->n_guns; i++) {
|
||||
int isactive = 0;
|
||||
int bankactive = 0;
|
||||
ship_weapon *swp = &shipp->weapons;
|
||||
|
||||
if (!timestamp_elapsed(shipp->weapons.next_primary_fire_stamp[i]))
|
||||
isactive = 1;
|
||||
bankactive = 1;
|
||||
else if (timestamp_elapsed(shipp->weapons.primary_animation_done_time[i]))
|
||||
isactive = 1;
|
||||
bankactive = 1;
|
||||
else if (i == shipp->weapons.current_primary_bank || shipp->flags & SF_PRIMARY_LINKED)
|
||||
isactive = 2;
|
||||
bankactive = 2;
|
||||
|
||||
int num_slots = pm->gun_banks[i].num_slots;
|
||||
for (int j = 0; j < num_slots; j++) {
|
||||
int fpactive = bankactive;
|
||||
|
||||
if (sip->flags2 & SIF2_DYN_PRIMARY_LINKING) {
|
||||
// If this firepoint is not among the next shot(s) to be fired, dim it one step
|
||||
if ( !( (j >= (shipp->last_fired_point[i]+1) % num_slots) && (j <= (shipp->last_fired_point[i]+swp->primary_bank_slot_count[i]) % num_slots) ) ) {
|
||||
fpactive--;
|
||||
}
|
||||
} else if (Weapon_info[swp->primary_bank_weapons[i]].wi_flags2 & WIF2_CYCLE) {
|
||||
// If this firepoint is not the next one to be fired, dim it one step
|
||||
if (j != (shipp->last_fired_point[i]+1) % num_slots) {
|
||||
fpactive--;
|
||||
}
|
||||
}
|
||||
|
||||
for (int j = 0; j < pm->gun_banks[i].num_slots; j++) {
|
||||
vec3d fpfromeye;
|
||||
|
||||
matrix eye_orient, player_transpose;
|
||||
@@ -317,7 +364,7 @@ void HudGaugeReticle::getFirepointStatus() {
|
||||
vm_matrix_x_matrix(&eye_orient, &player_transpose, &Eye_matrix);
|
||||
vm_vec_rotate(&fpfromeye, &pm->gun_banks[i].pnt[j], &eye_orient);
|
||||
|
||||
firepoint tmp = { { fpfromeye.xyz.x - ep.x, ep.y - fpfromeye.xyz.y }, isactive };
|
||||
firepoint tmp = { { fpfromeye.xyz.x - ep.x, ep.y - fpfromeye.xyz.y }, fpactive };
|
||||
fp.push_back(tmp);
|
||||
}
|
||||
}
|
||||
@@ -326,6 +373,13 @@ void HudGaugeReticle::getFirepointStatus() {
|
||||
}
|
||||
}
|
||||
|
||||
void HudGaugeReticle::setAutoaimFrame(int framenum) {
|
||||
if (framenum < 0 || framenum > crosshair.num_frames - 1)
|
||||
autoaim_frame_offset = 0;
|
||||
else
|
||||
autoaim_frame_offset = framenum;
|
||||
}
|
||||
|
||||
void HudGaugeReticle::pageIn()
|
||||
{
|
||||
bm_page_in_aabitmap( crosshair.first_frame, crosshair.num_frames);
|
||||
|
||||
@@ -43,6 +43,8 @@ protected:
|
||||
int firepoint_size;
|
||||
int firepoint_scale_x;
|
||||
int firepoint_scale_y;
|
||||
int autoaim_frame_offset;
|
||||
bool has_autoaim_lock;
|
||||
public:
|
||||
HudGaugeReticle();
|
||||
void render(float frametime);
|
||||
@@ -50,6 +52,7 @@ public:
|
||||
void pageIn();
|
||||
void initFirepointDisplay(bool firepoint, int scaleX, int scaleY, int size);
|
||||
void getFirepointStatus();
|
||||
void setAutoaimFrame(int framenum);
|
||||
};
|
||||
|
||||
class HudGaugeThrottle: public HudGauge
|
||||
|
||||
@@ -858,7 +858,7 @@ int hud_squadmsg_is_target_order_valid(int order, int find_order, ai_info *aip )
|
||||
}
|
||||
|
||||
// if we are messaging a ship, and that ship is our target, no target type orders are ever active
|
||||
if ( (Squad_msg_mode == SM_MODE_SHIP_COMMAND) && (target_objnum == Msg_instance) ){
|
||||
if ( (Squad_msg_mode == SM_MODE_SHIP_COMMAND) && (Objects[target_objnum].instance == Msg_instance) ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1095,7 +1095,7 @@ void hud_target_subobject_common(int next_flag)
|
||||
target_shipp = &Ships[Objects[Player_ai->target_objnum].instance];
|
||||
|
||||
if (!Player_ai->targeted_subsys) {
|
||||
start = GET_FIRST(&target_shipp->subsys_list);
|
||||
start = END_OF_LIST(&target_shipp->subsys_list);
|
||||
} else {
|
||||
start = Player_ai->targeted_subsys;
|
||||
}
|
||||
|
||||
+10
-1
@@ -41,6 +41,7 @@
|
||||
#define LAB_FLAG_FULLY_LOAD (1<<5) // use create_ship() to test the ships
|
||||
#define LAB_FLAG_SHOW_WEAPONS (1<<6) // determines if external weapons models are displayed
|
||||
#define LAB_FLAG_INITIAL_ROTATION (1<<7) // initial rotation setting
|
||||
#define LAB_FLAG_DESTROYED_SUBSYSTEMS (1<<8) // render model as if all subsystems are destroyed
|
||||
|
||||
// modes
|
||||
#define LAB_MODE_NONE 0 // not showing anything
|
||||
@@ -684,7 +685,7 @@ void labviewer_add_model_thrusters(ship_info *sip)
|
||||
mst.distortion_bitmap = thruster_distortion_bitmap;
|
||||
|
||||
mst.use_ab = Lab_thrust_afterburn;
|
||||
mst.glow_noise = thruster_glow_noise;
|
||||
mst.glow_noise = thruster_glow_noise * sip->thruster_glow_noise_mult;
|
||||
mst.rotvel = &vmd_zero_vector;
|
||||
|
||||
if (Lab_mode == LAB_MODE_SHIP) {
|
||||
@@ -904,6 +905,13 @@ void labviewer_render_model(float frametime)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sip != NULL) {
|
||||
if (Lab_viewer_flags & LAB_FLAG_DESTROYED_SUBSYSTEMS) {
|
||||
model_show_damaged(Lab_model_num, 1);
|
||||
}
|
||||
}
|
||||
|
||||
opengl_shader_set_animated_effect(ANIMATED_SHADER_LOADOUTSELECT_FS1);
|
||||
opengl_shader_set_animated_timer(MIN((timer_get_milliseconds()-anim_timer_start)/1500.0f,2.0f));
|
||||
|
||||
@@ -1855,6 +1863,7 @@ void labviewer_make_render_options_window(Button *caller)
|
||||
ADD_RENDER_FLAG("Animated Shader", Lab_model_flags, MR_ANIMATED_SHADER);
|
||||
ADD_RENDER_FLAG("Show Ship Weapons", Lab_viewer_flags, LAB_FLAG_SHOW_WEAPONS);
|
||||
ADD_RENDER_FLAG("Initial Rotation", Lab_viewer_flags, LAB_FLAG_INITIAL_ROTATION);
|
||||
ADD_RENDER_FLAG("Show Destroyed Subsystems", Lab_viewer_flags, LAB_FLAG_DESTROYED_SUBSYSTEMS);
|
||||
|
||||
|
||||
// start tree
|
||||
|
||||
@@ -147,7 +147,7 @@ void lcl_init(int lang_init)
|
||||
|
||||
if(ret == NULL){
|
||||
Error(LOCATION, "Default language not found.");
|
||||
}
|
||||
}
|
||||
|
||||
strcpy_s(lang_string, ret);
|
||||
|
||||
|
||||
+12
-17
@@ -35,9 +35,9 @@
|
||||
char *fs2_open_credit_text =
|
||||
"SOURCE CODE PROJECT STAFF:\n"
|
||||
"\n"
|
||||
"Project Leaders:\n"
|
||||
"Project Leader:\n"
|
||||
"\n"
|
||||
"Cliff \"chief1983\" Gordon\n"
|
||||
"Fabian \"The E\" Woltermann\n"
|
||||
"\n"
|
||||
"Senior Advisors:\n"
|
||||
"\n"
|
||||
@@ -45,6 +45,7 @@ char *fs2_open_credit_text =
|
||||
"Michael \"Zacam\" LaFleur\n"
|
||||
"Taylor Richards\n"
|
||||
"Edward \"Inquisitor\" Gardner\n"
|
||||
"Cliff \"chief1983\" Gordon\n"
|
||||
"\n"
|
||||
"Programmers:\n"
|
||||
"\n"
|
||||
@@ -52,19 +53,13 @@ char *fs2_open_credit_text =
|
||||
"Derek \"Kazan\" Meek\n"
|
||||
"Nick \"phreak\" Iannetta\n"
|
||||
"Mike \"Bobboau\" Abegg\n"
|
||||
"Backslash\n"
|
||||
"Echelon9\n"
|
||||
"Flaming_Sword\n"
|
||||
"FUBAR\n"
|
||||
"Iss Mneur\n"
|
||||
"kkmic\n"
|
||||
"Shade\n"
|
||||
"Soulstorm\n"
|
||||
"Sushi\n"
|
||||
"Swifty\n"
|
||||
"Wanderer\n"
|
||||
"Fabian \"The E\" Woltermann\n"
|
||||
"CommanderDJ\n"
|
||||
"Backslash, Echelon9, Flaming_Sword\n"
|
||||
"FUBAR, Iss Mneur, kkmic\n"
|
||||
"Shade, Soulstorm, Sushi\n"
|
||||
"Swifty, Wanderer, CommanderDJ\n"
|
||||
"Valathil, MageKing17, Yarn\n"
|
||||
"m!m, z64555, zookeeper\n"
|
||||
"jg18, niffiwan\n"
|
||||
"\n"
|
||||
"\n"
|
||||
"Readme Staff:\n"
|
||||
@@ -650,10 +645,10 @@ void credits_close()
|
||||
int i;
|
||||
|
||||
for (i=0; i<Credits_num_images; i++) {
|
||||
if (Credits_bmps[i] >= 0){
|
||||
if (Credits_bmps[i] >= 0) {
|
||||
bm_release(Credits_bmps[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Credits_bmps.clear();
|
||||
|
||||
credits_stop_music(true);
|
||||
|
||||
@@ -59,7 +59,9 @@ extern void game_process_cheats(int k);
|
||||
|
||||
SCP_vector< SCP_vector<main_hall_defines> > Main_hall_defines;
|
||||
|
||||
main_hall_defines *Main_hall = NULL;
|
||||
static main_hall_defines *Main_hall = NULL;
|
||||
|
||||
static int Main_hall_music_index = -1;
|
||||
|
||||
int Vasudan_funny = 0;
|
||||
int Vasudan_funny_plate = -1;
|
||||
@@ -439,7 +441,7 @@ void main_hall_init(const SCP_string &main_hall_name)
|
||||
}
|
||||
|
||||
// if we're switching to a different mainhall we may need to change music
|
||||
if (main_hall_get_music_index(main_hall_get_index(main_hall_to_load)) != main_hall_get_music_index(main_hall_id())) {
|
||||
if (main_hall_get_music_index(main_hall_get_index(main_hall_to_load)) != Main_hall_music_index) {
|
||||
main_hall_stop_music(true);
|
||||
}
|
||||
|
||||
@@ -447,8 +449,8 @@ void main_hall_init(const SCP_string &main_hall_name)
|
||||
snazzy_menu_init();
|
||||
|
||||
// assign the proper main hall data
|
||||
Assert(main_hall_get_pointer(main_hall_to_load) != NULL);
|
||||
Main_hall = main_hall_get_pointer(main_hall_to_load);
|
||||
Assertion(Main_hall != NULL, "Failed to obtain pointer to main hall '%s'; get a coder!\n", main_hall_to_load.c_str());
|
||||
|
||||
// check if we have to change the ready room's description
|
||||
if(Main_hall->default_readyroom) {
|
||||
@@ -1138,7 +1140,6 @@ int main_hall_get_music_index(int main_hall_num)
|
||||
*/
|
||||
void main_hall_start_music()
|
||||
{
|
||||
int index;
|
||||
char *filename;
|
||||
|
||||
// start a looping ambient sound
|
||||
@@ -1155,13 +1156,13 @@ void main_hall_start_music()
|
||||
}
|
||||
|
||||
// get music
|
||||
index = main_hall_get_music_index(main_hall_id());
|
||||
if (index < 0) {
|
||||
Main_hall_music_index = main_hall_get_music_index(main_hall_id());
|
||||
if (Main_hall_music_index < 0) {
|
||||
nprintf(("Warning", "No music file exists to play music at the main menu!\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
filename = Spooled_music[index].filename;
|
||||
filename = Spooled_music[Main_hall_music_index].filename;
|
||||
Assert(filename != NULL);
|
||||
|
||||
// get handle
|
||||
|
||||
@@ -241,10 +241,10 @@ int mission_campaign_maybe_add(const char *filename)
|
||||
char *desc = NULL;
|
||||
int type, max_players;
|
||||
|
||||
// don't add ignored campaigns
|
||||
if (campaign_is_ignored(filename)) {
|
||||
return 0;
|
||||
}
|
||||
// don't add ignored campaigns
|
||||
if (campaign_is_ignored(filename)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( mission_campaign_get_info( filename, name, &type, &max_players, &desc) ) {
|
||||
if ( !MC_multiplayer && (type == CAMPAIGN_TYPE_SINGLE) ) {
|
||||
|
||||
@@ -93,7 +93,7 @@ extern int Num_goals; // number of goals for this mission
|
||||
#define MLF_FIRST_REPEAT_ONLY (1 << 4)
|
||||
#define MLF_LAST_REPEAT_ONLY (1 << 5)
|
||||
#define MLF_FIRST_TRIGGER_ONLY (1 << 6)
|
||||
#define MLF_LAST_TRIGGER_ONLY (1 << 7)
|
||||
#define MLF_LAST_TRIGGER_ONLY (1 << 7)
|
||||
#define MLF_STATE_CHANGE (1 << 8)
|
||||
|
||||
#define MLF_ALL_REPETITION_FLAGS (MLF_FIRST_REPEAT_ONLY | MLF_LAST_REPEAT_ONLY | MLF_FIRST_TRIGGER_ONLY | MLF_LAST_TRIGGER_ONLY)
|
||||
|
||||
@@ -561,7 +561,7 @@ void parse_msgtbl()
|
||||
|
||||
// now we can start parsing
|
||||
if (optional_string("#Message Frequencies")) {
|
||||
while (!required_string_3("$Name:", "#Personas", "#Moods" )) {
|
||||
while (!required_string_one_of(3, "$Name:", "#Personas", "#Moods" )) {
|
||||
message_frequency_parse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1838,6 +1838,7 @@ int parse_create_object_sub(p_object *p_objp)
|
||||
|
||||
shipp->ship_max_shield_strength = p_objp->ship_max_shield_strength;
|
||||
shipp->ship_max_hull_strength = p_objp->ship_max_hull_strength;
|
||||
shipp->max_shield_recharge = p_objp->max_shield_recharge;
|
||||
|
||||
// Goober5000 - ugh, this is really stupid having to do this here; if the
|
||||
// ship creation code was better organized this wouldn't be necessary
|
||||
@@ -2250,7 +2251,7 @@ int parse_create_object_sub(p_object *p_objp)
|
||||
Objects[objnum].hull_strength = p_objp->initial_hull * shipp->ship_max_hull_strength / 100.0f;
|
||||
for (iLoop = 0; iLoop<Objects[objnum].n_quadrants; iLoop++)
|
||||
{
|
||||
Objects[objnum].shield_quadrant[iLoop] = (float) (p_objp->initial_shields * get_max_shield_quad(&Objects[objnum]) / 100.0f);
|
||||
Objects[objnum].shield_quadrant[iLoop] = (float) (shipp->max_shield_recharge * p_objp->initial_shields * get_max_shield_quad(&Objects[objnum]) / 100.0f);
|
||||
}
|
||||
|
||||
// initial velocities now do not apply to ships which warp in after mission starts
|
||||
@@ -3110,6 +3111,7 @@ int parse_object(mission *pm, int flag, p_object *p_objp)
|
||||
}
|
||||
|
||||
Assert(p_objp->ship_max_hull_strength > 0.0f); // Goober5000: div-0 check (not shield because we might not have one)
|
||||
p_objp->max_shield_recharge = Ship_info[p_objp->ship_class].max_shield_recharge;
|
||||
|
||||
|
||||
// if the kamikaze flag is set, we should have the next flag
|
||||
@@ -4603,8 +4605,9 @@ void resolve_path_masks(int anchor, int *path_mask)
|
||||
Assert(!(anchor & SPECIAL_ARRIVAL_ANCHOR_FLAG));
|
||||
parent_pobjp = mission_parse_get_parse_object(Parse_names[anchor]);
|
||||
|
||||
// load model for checking paths
|
||||
modelnum = model_load(Ship_info[parent_pobjp->ship_class].pof_file, 0, NULL);
|
||||
// Load the anchor ship model with subsystems and all; it'll need to be done for this mission anyway
|
||||
ship_info *sip = &Ship_info[parent_pobjp->ship_class];
|
||||
modelnum = model_load(sip->pof_file, sip->n_subsystems, &sip->subsystems[0]);
|
||||
|
||||
// resolve names to indexes
|
||||
*path_mask = 0;
|
||||
@@ -4617,9 +4620,6 @@ void resolve_path_masks(int anchor, int *path_mask)
|
||||
*path_mask |= (1 << bay_path);
|
||||
}
|
||||
|
||||
// unload model
|
||||
model_unload(modelnum);
|
||||
|
||||
// cache the result
|
||||
prp->cached_mask = *path_mask;
|
||||
}
|
||||
@@ -7555,6 +7555,7 @@ void mission_bring_in_support_ship( object *requester_objp )
|
||||
// set support ship hitpoints
|
||||
pobj->ship_max_hull_strength = Ship_info[i].max_hull_strength;
|
||||
pobj->ship_max_shield_strength = Ship_info[i].max_shield_strength;
|
||||
pobj->max_shield_recharge = Ship_info[i].max_shield_recharge;
|
||||
|
||||
pobj->team = requester_shipp->team;
|
||||
|
||||
|
||||
@@ -424,6 +424,8 @@ public:
|
||||
float ship_max_hull_strength; // Needed to deal with special hitpoints
|
||||
float ship_max_shield_strength;
|
||||
|
||||
float max_shield_recharge;
|
||||
|
||||
// Goober5000
|
||||
SCP_vector<texture_replace> replacement_textures;
|
||||
|
||||
|
||||
@@ -1513,6 +1513,11 @@ void draw_model_icon(int model_id, int flags, float closeup_zoom, int x, int y,
|
||||
//Assume it's a weapon
|
||||
rot_angles.h = -(PI_2);
|
||||
}
|
||||
else if(sip->model_icon_angles.p != 0.0f || sip->model_icon_angles.b != 0.0f || sip->model_icon_angles.h != 0.0f)
|
||||
{
|
||||
// If non-zero model_icon_angles exists, always use that
|
||||
rot_angles = sip->model_icon_angles;
|
||||
}
|
||||
else if(sip->flags & SIF_SMALL_SHIP)
|
||||
{
|
||||
rot_angles.p = -(PI_2);
|
||||
|
||||
@@ -79,14 +79,14 @@ void parse_mod_table(const char *filename)
|
||||
SCP_string campaign_name;
|
||||
|
||||
while (optional_string("$Campaign File Name:")) {
|
||||
stuff_string(campaign_name, F_NAME);
|
||||
stuff_string(campaign_name, F_NAME);
|
||||
|
||||
// remove extension?
|
||||
if (drop_extension(campaign_name)) {
|
||||
mprintf(("Game Settings Table: Removed extension on ignored campaign file name %s\n", campaign_name.c_str()));
|
||||
}
|
||||
|
||||
Ignored_campaigns.push_back(campaign_name);
|
||||
Ignored_campaigns.push_back(campaign_name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,15 +193,15 @@ void parse_mod_table(const char *filename)
|
||||
optional_string("#SOUND SETTINGS");
|
||||
|
||||
if (optional_string("$Default Sound Volume:")) {
|
||||
stuff_float(&Master_sound_volume);
|
||||
stuff_float(&Default_sound_volume);
|
||||
}
|
||||
|
||||
if (optional_string("$Default Music Volume:")) {
|
||||
stuff_float(&Master_event_music_volume);
|
||||
stuff_float(&Default_music_volume);
|
||||
}
|
||||
|
||||
if (optional_string("$Default Voice Volume:")) {
|
||||
stuff_float(&Master_voice_volume);
|
||||
stuff_float(&Default_voice_volume);
|
||||
}
|
||||
|
||||
optional_string("#FRED SETTINGS");
|
||||
|
||||
+2
-1
@@ -1022,7 +1022,8 @@ typedef struct mc_info {
|
||||
vec3d *p0; // The starting point of the ray (sphere) to check
|
||||
vec3d *p1; // The ending point of the ray (sphere) to check
|
||||
int flags; // Flags that the model_collide code looks at. See MC_??? defines
|
||||
float radius; // If MC_CHECK_THICK is set, checks a sphere moving with the radius.
|
||||
float radius; // If MC_CHECK_THICK is set, checks a sphere moving with the radius.
|
||||
int lod; // Which detail level of the submodel to check instead
|
||||
|
||||
// Return values
|
||||
int num_hits; // How many collisions were found
|
||||
|
||||
@@ -1130,7 +1130,22 @@ void mc_check_subobj( int mn )
|
||||
if ( Cmdline_old_collision_sys ) {
|
||||
model_collide_sub(sm->bsp_data);
|
||||
} else {
|
||||
model_collide_bsp(model_get_bsp_collision_tree(sm->collision_tree_index), 0);
|
||||
if (Mc->lod > 0 && sm->num_details > 0) {
|
||||
bsp_info *lod_sm = sm;
|
||||
|
||||
for (int i = Mc->lod - 1; i >= 0; i--) {
|
||||
if (sm->details[i] != -1) {
|
||||
lod_sm = &Mc_pm->submodel[sm->details[i]];
|
||||
|
||||
//mprintf(("Checking %s collision for %s using %s instead\n", Mc_pm->filename, sm->name, lod_sm->name));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
model_collide_bsp(model_get_bsp_collision_tree(lod_sm->collision_tree_index), 0);
|
||||
} else {
|
||||
model_collide_bsp(model_get_bsp_collision_tree(sm->collision_tree_index), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+51
-31
@@ -83,7 +83,6 @@ static float Interp_box_scale = 1.0f; // this is used to scale both detail boxes
|
||||
static vec3d Interp_render_box_min = ZERO_VECTOR;
|
||||
static vec3d Interp_render_box_max = ZERO_VECTOR;
|
||||
static float Interp_render_sphere_radius = 0.0f;
|
||||
static vec3d Interp_render_sphere_offset = ZERO_VECTOR;
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// lighting save stuff
|
||||
@@ -369,7 +368,6 @@ void interp_clear_instance()
|
||||
Interp_render_box_min = vmd_zero_vector;
|
||||
Interp_render_box_max = vmd_zero_vector;
|
||||
Interp_render_sphere_radius = 0.0f;
|
||||
Interp_render_sphere_offset = vmd_zero_vector;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2728,6 +2726,7 @@ void model_really_render(int model_num, matrix *orient, vec3d * pos, uint flags,
|
||||
uint save_gr_zbuffering_mode;
|
||||
int zbuf_mode;
|
||||
ship *shipp = NULL;
|
||||
ship_info *sip = NULL;
|
||||
object *objp = NULL;
|
||||
bool set_autocen = false;
|
||||
bool draw_thrusters = false;
|
||||
@@ -2742,6 +2741,7 @@ void model_really_render(int model_num, matrix *orient, vec3d * pos, uint flags,
|
||||
|
||||
if (objp->type == OBJ_SHIP) {
|
||||
shipp = &Ships[objp->instance];
|
||||
sip = &Ship_info[shipp->ship_info_index];
|
||||
|
||||
if (shipp->flags2 & SF2_GLOWMAPS_DISABLED)
|
||||
flags |= MR_NO_GLOWMAPS;
|
||||
@@ -2905,33 +2905,37 @@ void model_really_render(int model_num, matrix *orient, vec3d * pos, uint flags,
|
||||
}
|
||||
#endif
|
||||
|
||||
// scale the render box settings based on the "Model Detail" slider
|
||||
switch (Detail.detail_distance)
|
||||
{
|
||||
// 1st dot is 20%
|
||||
case 0:
|
||||
Interp_box_scale = 0.2f;
|
||||
break;
|
||||
if (shipp != NULL && (sip->flags2 & SIF2_LOCK_DETAIL_BOXES)) {
|
||||
Interp_box_scale = 1.0f;
|
||||
} else {
|
||||
// scale the render box settings based on the "Model Detail" slider
|
||||
switch (Detail.detail_distance)
|
||||
{
|
||||
// 1st dot is 20%
|
||||
case 0:
|
||||
Interp_box_scale = 0.2f;
|
||||
break;
|
||||
|
||||
// 2nd dot is 50%
|
||||
case 1:
|
||||
Interp_box_scale = 0.5f;
|
||||
break;
|
||||
// 2nd dot is 50%
|
||||
case 1:
|
||||
Interp_box_scale = 0.5f;
|
||||
break;
|
||||
|
||||
// 3rd dot is 80%
|
||||
case 2:
|
||||
Interp_box_scale = 0.8f;
|
||||
break;
|
||||
// 3rd dot is 80%
|
||||
case 2:
|
||||
Interp_box_scale = 0.8f;
|
||||
break;
|
||||
|
||||
// 4th dot is 100% (this is the default setting for "High" and "Very High" settings)
|
||||
case 3:
|
||||
Interp_box_scale = 1.0f;
|
||||
break;
|
||||
// 4th dot is 100% (this is the default setting for "High" and "Very High" settings)
|
||||
case 3:
|
||||
Interp_box_scale = 1.0f;
|
||||
break;
|
||||
|
||||
// 5th dot (max) is 120%
|
||||
case 4:
|
||||
Interp_box_scale = 1.2f;
|
||||
break;
|
||||
// 5th dot (max) is 120%
|
||||
case 4:
|
||||
Interp_box_scale = 1.2f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
vec3d auto_back = ZERO_VECTOR;
|
||||
@@ -4468,7 +4472,13 @@ void model_render_children_buffers(polymodel *pm, int mn, int detail_level)
|
||||
vm_vec_copy_scale(&Interp_render_box_min, &model->render_box_min, Interp_box_scale);
|
||||
vm_vec_copy_scale(&Interp_render_box_max, &model->render_box_max, Interp_box_scale);
|
||||
|
||||
if ( (-model->use_render_box + in_box(&Interp_render_box_min, &Interp_render_box_max, &model->offset)) )
|
||||
vec3d offset;
|
||||
if (model->use_render_box_offset)
|
||||
offset = model->render_box_offset;
|
||||
else
|
||||
model_find_submodel_offset(&offset, pm->id, mn);
|
||||
|
||||
if ( (-model->use_render_box + in_box(&Interp_render_box_min, &Interp_render_box_max, &offset)) )
|
||||
return;
|
||||
}
|
||||
if ( !(Interp_flags & MR_FULL_DETAIL) && model->use_render_sphere ) {
|
||||
@@ -4476,8 +4486,10 @@ void model_render_children_buffers(polymodel *pm, int mn, int detail_level)
|
||||
|
||||
// TODO: doesn't consider submodel rotations yet -zookeeper
|
||||
vec3d offset;
|
||||
model_find_submodel_offset(&offset, pm->id, mn);
|
||||
vm_vec_add2(&offset, &model->render_sphere_offset);
|
||||
if (model->use_render_sphere_offset)
|
||||
offset = model->render_sphere_offset;
|
||||
else
|
||||
model_find_submodel_offset(&offset, pm->id, mn);
|
||||
|
||||
if ( (-model->use_render_sphere + in_sphere(&offset, Interp_render_sphere_radius)) )
|
||||
return;
|
||||
@@ -4591,7 +4603,13 @@ void model_render_buffers(polymodel *pm, int mn, bool is_child)
|
||||
vm_vec_copy_scale(&Interp_render_box_min, &model->render_box_min, Interp_box_scale);
|
||||
vm_vec_copy_scale(&Interp_render_box_max, &model->render_box_max, Interp_box_scale);
|
||||
|
||||
if ( (-model->use_render_box + in_box(&Interp_render_box_min, &Interp_render_box_max, &model->offset)) )
|
||||
vec3d offset;
|
||||
if (model->use_render_box_offset)
|
||||
offset = model->render_box_offset;
|
||||
else
|
||||
model_find_submodel_offset(&offset, pm->id, mn);
|
||||
|
||||
if ( (-model->use_render_box + in_box(&Interp_render_box_min, &Interp_render_box_max, &offset)) )
|
||||
return;
|
||||
}
|
||||
if ( !is_child && !(Interp_flags & MR_FULL_DETAIL) && model->use_render_sphere ) {
|
||||
@@ -4599,8 +4617,10 @@ void model_render_buffers(polymodel *pm, int mn, bool is_child)
|
||||
|
||||
// TODO: doesn't consider submodel rotations yet -zookeeper
|
||||
vec3d offset;
|
||||
model_find_submodel_offset(&offset, pm->id, mn);
|
||||
vm_vec_add2(&offset, &model->render_sphere_offset);
|
||||
if (model->use_render_sphere_offset)
|
||||
offset = model->render_sphere_offset;
|
||||
else
|
||||
model_find_submodel_offset(&offset, pm->id, mn);
|
||||
|
||||
if ( (-model->use_render_sphere + in_sphere(&offset, Interp_render_sphere_radius)) )
|
||||
return;
|
||||
|
||||
@@ -1354,6 +1354,18 @@ int read_model_file(polymodel * pm, char *filename, int n_subsystems, model_subs
|
||||
while (*p == ' ') p++;
|
||||
pm->submodel[n].use_render_box = atoi(p);
|
||||
|
||||
if ( (p = strstr(props, "$box_offset:")) != NULL ) {
|
||||
p += 12;
|
||||
while (*p == ' ') p++;
|
||||
pm->submodel[n].render_box_offset.xyz.x = (float)strtod(p, (char **)NULL);
|
||||
while (*p != ',') p++;
|
||||
pm->submodel[n].render_box_offset.xyz.y = (float)strtod(++p, (char **)NULL);
|
||||
while (*p != ',') p++;
|
||||
pm->submodel[n].render_box_offset.xyz.z = (float)strtod(++p, (char **)NULL);
|
||||
|
||||
pm->submodel[n].use_render_box_offset = true;
|
||||
}
|
||||
|
||||
if ( (p = strstr(props, "$box_min:")) != NULL ) {
|
||||
p += 9;
|
||||
while (*p == ' ') p++;
|
||||
@@ -1400,6 +1412,8 @@ int read_model_file(polymodel * pm, char *filename, int n_subsystems, model_subs
|
||||
pm->submodel[n].render_sphere_offset.xyz.y = (float)strtod(++p, (char **)NULL);
|
||||
while (*p != ',') p++;
|
||||
pm->submodel[n].render_sphere_offset.xyz.z = (float)strtod(++p, (char **)NULL);
|
||||
|
||||
pm->submodel[n].use_render_sphere_offset = true;
|
||||
} else {
|
||||
pm->submodel[n].render_sphere_offset = vmd_zero_vector;
|
||||
}
|
||||
@@ -2466,7 +2480,7 @@ int model_load(char *filename, int n_subsystems, model_subsystem *subsystems, in
|
||||
|
||||
pm = new polymodel;
|
||||
Polygon_models[num] = pm;
|
||||
|
||||
|
||||
pm->n_paths = 0;
|
||||
pm->paths = NULL;
|
||||
|
||||
@@ -2639,6 +2653,12 @@ int model_load(char *filename, int n_subsystems, model_subsystem *subsystems, in
|
||||
}
|
||||
dl2 = tolower(sm2->name[first_diff]) - 'a';
|
||||
|
||||
// Handle LODs named "detail0/1/2/etc" too (as opposed to "detaila/b/c/etc")
|
||||
if (sm1->parent == -1 && sm2->parent == -1 && !sm1->is_damaged && !sm2->is_damaged && !sm1->is_live_debris && !sm2->is_live_debris) {
|
||||
dl2 = dl2 - dl1;
|
||||
dl1 = 0;
|
||||
}
|
||||
|
||||
if ( (dl1<0) || (dl2<0) || (dl1>=MAX_MODEL_DETAIL_LEVELS) || (dl2>=MAX_MODEL_DETAIL_LEVELS) ) continue; // invalid detail levels
|
||||
|
||||
if ( dl1 == 0 ) {
|
||||
@@ -2663,10 +2683,11 @@ int model_load(char *filename, int n_subsystems, model_subsystem *subsystems, in
|
||||
|
||||
if ( !Cmdline_old_collision_sys ) {
|
||||
for ( i = 0; i < pm->n_models; ++i ) {
|
||||
pm->submodel[i].collision_tree_index = model_create_bsp_collision_tree();
|
||||
bsp_collision_tree *tree = model_get_bsp_collision_tree(pm->submodel[i].collision_tree_index);
|
||||
|
||||
model_collide_parse_bsp(tree, pm->submodel[i].bsp_data, pm->version);
|
||||
if ( !(pm->submodel[i].nocollide_this_only || pm->submodel[i].no_collisions) ) {
|
||||
pm->submodel[i].collision_tree_index = model_create_bsp_collision_tree();
|
||||
bsp_collision_tree *tree = model_get_bsp_collision_tree(pm->submodel[i].collision_tree_index);
|
||||
model_collide_parse_bsp(tree, pm->submodel[i].bsp_data, pm->version);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -269,6 +269,10 @@ int ship_ship_check_collision(collision_info_struct *ship_ship_hit_info, vec3d *
|
||||
// reset flags to check MC_CHECK_MODEL | MC_CHECK_SPHERELINE and maybe MC_CHECK_INVISIBLE_FACES and MC_SUBMODEL_INSTANCE
|
||||
mc.flags = copy_flags | MC_SUBMODEL_INSTANCE;
|
||||
|
||||
if (heavy_sip->collision_lod > -1) {
|
||||
mc.lod = heavy_sip->collision_lod;
|
||||
}
|
||||
|
||||
// check each submodel in turn
|
||||
for (smv = submodel_vector.begin(); smv != submodel_vector.end(); ++smv) {
|
||||
// turn on submodel for collision test
|
||||
|
||||
@@ -168,6 +168,7 @@ int ship_weapon_check_collision(object *ship_objp, object *weapon_objp, float ti
|
||||
mc.pos = &ship_objp->pos;
|
||||
mc.p0 = &weapon_objp->last_pos;
|
||||
mc.p1 = &weapon_end_pos;
|
||||
mc.lod = sip->collision_lod;
|
||||
memcpy(&mc_shield, &mc, sizeof(mc_info));
|
||||
memcpy(&mc_hull, &mc, sizeof(mc_info));
|
||||
|
||||
@@ -200,15 +201,16 @@ int ship_weapon_check_collision(object *ship_objp, object *weapon_objp, float ti
|
||||
// The weapon is not allowed to impact the shield before it reaches this point
|
||||
vec3d shield_ignored_until = weapon_objp->last_pos;
|
||||
|
||||
float min_weapon_span = sip->auto_shield_spread_min_span;
|
||||
float weapon_flown_for = vm_vec_dist(&wp->start_pos, &weapon_objp->last_pos);
|
||||
|
||||
// If weapon hasn't yet flown a distance greater than the maximum ignore
|
||||
// range, then some part of the currently checked range needs to be
|
||||
// ignored
|
||||
if (weapon_flown_for < sip->auto_shield_spread) {
|
||||
if (weapon_flown_for < min_weapon_span) {
|
||||
vm_vec_sub(&shield_ignored_until, &weapon_end_pos, &wp->start_pos);
|
||||
vm_vec_normalize(&shield_ignored_until);
|
||||
vm_vec_scale(&shield_ignored_until, sip->auto_shield_spread);
|
||||
vm_vec_scale(&shield_ignored_until, min_weapon_span);
|
||||
vm_vec_add2(&shield_ignored_until, &wp->start_pos);
|
||||
}
|
||||
|
||||
@@ -243,7 +245,7 @@ int ship_weapon_check_collision(object *ship_objp, object *weapon_objp, float ti
|
||||
// If no collision with the model found in the ignore range, only
|
||||
// then do we check for sphereline collisions with the model during the
|
||||
// non-ignored range
|
||||
if (!shield_collision && weapon_flown_for + this_range > sip->auto_shield_spread) {
|
||||
if (!shield_collision && weapon_flown_for + this_range > min_weapon_span) {
|
||||
mc_shield.p0 = &shield_ignored_until;
|
||||
|
||||
mc_shield.p1 = &weapon_end_pos;
|
||||
@@ -251,16 +253,14 @@ int ship_weapon_check_collision(object *ship_objp, object *weapon_objp, float ti
|
||||
mc_shield.radius = sip->auto_shield_spread;
|
||||
|
||||
if (sip->auto_shield_spread_from_lod > -1) {
|
||||
pm = model_get(sip->model_num);
|
||||
mc_shield.submodel_num = pm->detail[sip->auto_shield_spread_from_lod];
|
||||
|
||||
mc_shield.flags = MC_CHECK_MODEL | MC_SUBMODEL_INSTANCE | MC_CHECK_SPHERELINE;
|
||||
} else {
|
||||
mc_shield.flags = MC_CHECK_MODEL | MC_CHECK_SPHERELINE;
|
||||
mc_shield.lod = sip->auto_shield_spread_from_lod;
|
||||
}
|
||||
|
||||
mc_shield.flags = MC_CHECK_MODEL | MC_CHECK_SPHERELINE;
|
||||
|
||||
shield_collision = model_collide(&mc_shield);
|
||||
|
||||
mc_shield.lod = sip->collision_lod;
|
||||
mc_shield.submodel_num = -1;
|
||||
|
||||
// Because we manipulated p0 and p1 above, hit_dist will be
|
||||
@@ -407,6 +407,12 @@ int ship_weapon_check_collision(object *ship_objp, object *weapon_objp, float ti
|
||||
bool weapon_override = Script_system.IsConditionOverride(CHA_COLLIDESHIP, weapon_objp);
|
||||
|
||||
if(!ship_override && !weapon_override) {
|
||||
if (shield_collision && quadrant_num >= 0) {
|
||||
if ((sip->shield_impact_explosion_anim > -1) && (wip->shield_impact_explosion_radius > 0)) {
|
||||
// do in weapons.cpp for most parts just because that is how rest of the functions are handled
|
||||
shield_impact_explosion(&mc.hit_point, ship_objp, wip->shield_impact_explosion_radius, sip->shield_impact_explosion_anim);
|
||||
}
|
||||
}
|
||||
ship_weapon_do_hit_stuff(ship_objp, weapon_objp, &mc.hit_point_world, &mc.hit_point, quadrant_num, mc.hit_submodel, mc.hit_normal);
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
object obj_free_list;
|
||||
object obj_used_list;
|
||||
object obj_create_list;
|
||||
object obj_create_list;
|
||||
|
||||
object *Player_obj = NULL;
|
||||
object *Viewer_obj = NULL;
|
||||
@@ -716,7 +716,7 @@ void obj_move_one_docked_object(object *objp, object *parent_objp)
|
||||
* Deals with firing player things like lasers, missiles, etc.
|
||||
*
|
||||
* Separated out because of multiplayer issues.
|
||||
*/
|
||||
*/
|
||||
void obj_player_fire_stuff( object *objp, control_info ci )
|
||||
{
|
||||
ship *shipp;
|
||||
@@ -888,7 +888,7 @@ void obj_move_call_physics(object *objp, float frametime)
|
||||
goto obj_maybe_fire;
|
||||
}
|
||||
|
||||
physics_sim(&objp->pos, &objp->orient, &objp->phys_info, frametime ); // simulate the physics
|
||||
physics_sim(&objp->pos, &objp->orient, &objp->phys_info, frametime ); // simulate the physics
|
||||
|
||||
// if the object is the player object, do things that need to be done after the ship
|
||||
// is moved (like firing weapons, etc). This routine will get called either single
|
||||
@@ -906,7 +906,7 @@ obj_maybe_fire:
|
||||
// do stream weapon firing for all ships themselves.
|
||||
if(objp->type == OBJ_SHIP){
|
||||
ship_fire_primary(objp, 1, 0);
|
||||
has_fired = 1;
|
||||
has_fired = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1411,7 +1411,7 @@ void obj_move_all(float frametime)
|
||||
vec3d cur_pos = objp->pos; // Save the current position
|
||||
|
||||
#ifdef OBJECT_CHECK
|
||||
obj_check_object( objp );
|
||||
obj_check_object( objp );
|
||||
#endif
|
||||
|
||||
// pre-move
|
||||
@@ -1708,7 +1708,7 @@ void obj_get_average_ship_pos( vec3d *pos )
|
||||
|
||||
vm_vec_zero( pos );
|
||||
|
||||
// average up all ship positions
|
||||
// average up all ship positions
|
||||
count = 0;
|
||||
for ( objp = GET_FIRST(&obj_used_list); objp != END_OF_LIST(&obj_used_list); objp = GET_NEXT(objp) ) {
|
||||
if ( objp->type != OBJ_SHIP )
|
||||
|
||||
@@ -49,10 +49,18 @@ void shield_add_strength(object *objp, float delta)
|
||||
if (delta == 0.0f)
|
||||
return;
|
||||
|
||||
|
||||
float shield_str = shield_get_strength(objp);
|
||||
float shield_recharge_limit = Ships[objp->instance].ship_max_shield_strength * Ships[objp->instance].max_shield_recharge;
|
||||
|
||||
if (shield_str >= shield_recharge_limit)
|
||||
return;
|
||||
|
||||
if (!(Ai_info[Ships[objp->instance].ai_index].ai_profile_flags & AIPF_SMART_SHIELD_MANAGEMENT)
|
||||
|| delta <= 0.0f) //SUSHI: We don't want smart shield management for negative delta
|
||||
{
|
||||
if ((delta > 0.0f) && ((shield_str + delta) > shield_recharge_limit))
|
||||
delta = shield_recharge_limit - shield_str;
|
||||
|
||||
for (int i = 0; i < objp->n_quadrants; i++)
|
||||
shield_add_quad(objp, i, delta / objp->n_quadrants);
|
||||
}
|
||||
@@ -81,7 +89,11 @@ void shield_add_strength(object *objp, float delta)
|
||||
// all quads are at full strength
|
||||
if (weakest >= section_max)
|
||||
break;
|
||||
|
||||
|
||||
// set the limit for the shield recharge
|
||||
if ((delta > 0.0f) && ((shield_str + delta) > shield_recharge_limit))
|
||||
delta = shield_recharge_limit - shield_str;
|
||||
|
||||
// throw all possible shield power at this quadrant
|
||||
// if there's any left over then apply it to the next weakest on the next pass
|
||||
float xfer_amount;
|
||||
|
||||
+24
-13
@@ -503,7 +503,7 @@ void obj_snd_do_frame()
|
||||
}
|
||||
|
||||
distance -= add_distance;
|
||||
if ( distance < 0 ) {
|
||||
if ( distance < 0.0f ) {
|
||||
distance = 0.0f;
|
||||
}
|
||||
|
||||
@@ -521,39 +521,48 @@ void obj_snd_do_frame()
|
||||
rot_vol_mult = 1.0f;
|
||||
alive_vol_mult = 1.0f;
|
||||
if ( objp->type == OBJ_SHIP ) {
|
||||
if ( !(Ship_info[Ships[objp->instance].ship_info_index].flags & (SIF_BIG_SHIP | SIF_HUGE_SHIP)) ) {
|
||||
if ( objp->phys_info.max_vel.xyz.z <= 0 ) {
|
||||
ship_info *sip = &Ship_info[Ships[objp->instance].ship_info_index];
|
||||
if ( !(sip->flags & (SIF_BIG_SHIP | SIF_HUGE_SHIP)) ) {
|
||||
if ( objp->phys_info.max_vel.xyz.z <= 0.0f ) {
|
||||
percent_max = 0.0f;
|
||||
}
|
||||
else
|
||||
percent_max = objp->phys_info.fspeed / objp->phys_info.max_vel.xyz.z;
|
||||
|
||||
if ( percent_max >= 0.5 )
|
||||
speed_vol_multiplier = 1.0f;
|
||||
else {
|
||||
speed_vol_multiplier = 0.5f + (percent_max); // linear interp: 0.5->1.0 when 0.0->0.5
|
||||
if ( sip->min_engine_vol == -1.0f) {
|
||||
// Retail behavior: volume ramps from 0.5 (when stationary) to 1.0 (when at half speed)
|
||||
if ( percent_max >= 0.5f ) {
|
||||
speed_vol_multiplier = 1.0f;
|
||||
} else {
|
||||
speed_vol_multiplier = 0.5f + (percent_max); // linear interp: 0.5->1.0 when 0.0->0.5
|
||||
}
|
||||
} else {
|
||||
// Volume ramps from min_engine_vol (when stationary) to 1.0 (when at full speed)
|
||||
speed_vol_multiplier = MAX(sip->min_engine_vol, percent_max);
|
||||
}
|
||||
}
|
||||
if (osp->ss != NULL)
|
||||
{
|
||||
if (osp->flags & OS_TURRET_BASE_ROTATION)
|
||||
{
|
||||
if (osp->ss->base_rotation_rate_pct > 0)
|
||||
if (osp->ss->base_rotation_rate_pct > 0.0f)
|
||||
rot_vol_mult = ((0.25f + (0.75f * osp->ss->base_rotation_rate_pct)) * osp->ss->system_info->turret_base_rotation_snd_mult);
|
||||
else
|
||||
rot_vol_mult = 0;
|
||||
rot_vol_mult = 0.0f;
|
||||
}
|
||||
if (osp->flags & OS_TURRET_GUN_ROTATION)
|
||||
{
|
||||
if (osp->ss->gun_rotation_rate_pct > 0)
|
||||
if (osp->ss->gun_rotation_rate_pct > 0.0f)
|
||||
rot_vol_mult = ((0.25f + (0.75f * osp->ss->gun_rotation_rate_pct)) * osp->ss->system_info->turret_gun_rotation_snd_mult);
|
||||
else
|
||||
rot_vol_mult = 0;
|
||||
rot_vol_mult = 0.0f;
|
||||
}
|
||||
if (osp->flags & OS_SUBSYS_ROTATION )
|
||||
{
|
||||
if (osp->ss->flags & SSF_ROTATES) {
|
||||
rot_vol_mult = 1.0;
|
||||
rot_vol_mult = 1.0f;
|
||||
} else {
|
||||
rot_vol_mult = 0.0f;
|
||||
}
|
||||
}
|
||||
if (osp->flags & OS_SUBSYS_ALIVE)
|
||||
@@ -568,6 +577,8 @@ void obj_snd_do_frame()
|
||||
{
|
||||
if (osp->ss->current_hits <= 0.0f) {
|
||||
alive_vol_mult = 1.0f;
|
||||
} else {
|
||||
alive_vol_mult = 0.0f;
|
||||
}
|
||||
}
|
||||
if (osp->flags & OS_SUBSYS_DAMAGED)
|
||||
@@ -591,7 +602,7 @@ void obj_snd_do_frame()
|
||||
new_vol = max_vol - (distance - Snds[osp->id].min) * max_vol / (Snds[osp->id].max - Snds[osp->id].min);
|
||||
}
|
||||
|
||||
if ( new_vol < 0.1 ) {
|
||||
if ( new_vol < 0.1f ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
+28
-5
@@ -2632,7 +2632,7 @@ ADE_VIRTVAR(RotationalVelocityDamping, l_Physics, "number", "Rotational damping,
|
||||
return ade_set_args(L, "f", pih->pi->rotdamp);
|
||||
}
|
||||
|
||||
ADE_VIRTVAR(RotationalVelocityDesired, l_Physics, "vector", "Desired rotational velocity", "vector", "Desired rotational velocity, or null vector if handle is invalid")
|
||||
ADE_VIRTVAR(RotationalVelocityDesired, l_Physics, "lvector", "Desired rotational velocity", "number", "Desired rotational velocity, or 0 if handle is invalid")
|
||||
{
|
||||
physics_info_h *pih;
|
||||
vec3d *v3=NULL;
|
||||
@@ -6580,9 +6580,9 @@ ADE_VIRTVAR(AmmoMax, l_WeaponBank, "number", "Maximum ammo for the current bank<
|
||||
{
|
||||
case SWH_PRIMARY:
|
||||
{
|
||||
if(ADE_SETTING_VAR && ammomax > -1) {
|
||||
if(ADE_SETTING_VAR && ammomax > -1) {
|
||||
bh->sw->primary_bank_capacity[bh->bank] = ammomax;
|
||||
}
|
||||
}
|
||||
|
||||
int weapon_class = bh->sw->primary_bank_weapons[bh->bank];
|
||||
|
||||
@@ -6592,9 +6592,9 @@ ADE_VIRTVAR(AmmoMax, l_WeaponBank, "number", "Maximum ammo for the current bank<
|
||||
}
|
||||
case SWH_SECONDARY:
|
||||
{
|
||||
if(ADE_SETTING_VAR && ammomax > -1) {
|
||||
if(ADE_SETTING_VAR && ammomax > -1) {
|
||||
bh->sw->secondary_bank_capacity[bh->bank] = ammomax;
|
||||
}
|
||||
}
|
||||
|
||||
int weapon_class = bh->sw->secondary_bank_weapons[bh->bank];
|
||||
|
||||
@@ -15614,6 +15614,29 @@ ADE_FUNC(getStack, l_Testing, NULL, "Generates an ADE stackdump", "string", "Cur
|
||||
return ade_set_args(L, "s", buf);
|
||||
}
|
||||
|
||||
ADE_FUNC(setCurrentPlayerMulti, l_Testing, "boolean", "Sets whether current player is a multiplayer pilot or not.", "boolean", "True if successful, false if not.")
|
||||
{
|
||||
bool multi;
|
||||
|
||||
if(!ade_get_args(L, "b", &multi))
|
||||
return ADE_RETURN_NIL;
|
||||
|
||||
if(Player == NULL)
|
||||
return ade_set_error(L, "b", false);
|
||||
|
||||
if (multi) {
|
||||
Game_mode &= ~GM_NORMAL;
|
||||
Game_mode |= GM_MULTIPLAYER;
|
||||
Player->flags |= PLAYER_FLAGS_IS_MULTI;
|
||||
} else {
|
||||
Game_mode &= ~GM_MULTIPLAYER;
|
||||
Game_mode |= GM_NORMAL;
|
||||
Player->flags &= ~PLAYER_FLAGS_IS_MULTI;
|
||||
}
|
||||
|
||||
return ADE_RETURN_TRUE;
|
||||
}
|
||||
|
||||
ADE_FUNC(isCurrentPlayerMulti, l_Testing, NULL, "Returns whether current player is a multiplayer pilot or not.", "boolean", "Whether current player is a multiplayer pilot or not")
|
||||
{
|
||||
if(Player == NULL)
|
||||
|
||||
+6
-144
@@ -698,72 +698,6 @@ int required_string_either(char *str1, char *str2)
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Return 0 or 1 for str1 match, str2 match. Return -1 if neither matches.
|
||||
// Does not update Mp if token found. If not found, advances, trying to
|
||||
// find the string. Doesn't advance past the found string.
|
||||
int required_string_3(char *str1, char *str2, char *str3)
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
ignore_white_space();
|
||||
|
||||
while (count < RS_MAX_TRIES) {
|
||||
if (strnicmp(str1, Mp, strlen(str1)) == 0) {
|
||||
// Mp += strlen(str1);
|
||||
diag_printf("Found required string [%s]\n", token_found = str1);
|
||||
return 0;
|
||||
} else if (strnicmp(str2, Mp, strlen(str2)) == 0) {
|
||||
// Mp += strlen(str2);
|
||||
diag_printf("Found required string [%s]\n", token_found = str2);
|
||||
return 1;
|
||||
} else if (strnicmp(str3, Mp, strlen(str3)) == 0) {
|
||||
diag_printf("Found required string [%s]\n", token_found = str3);
|
||||
return 2;
|
||||
}
|
||||
|
||||
error_display(1, "Required token = [%s], [%s] or [%s], found [%.32s].\n", str1, str2, str3, next_tokens());
|
||||
|
||||
advance_to_eoln(NULL);
|
||||
ignore_white_space();
|
||||
count++;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int required_string_4(char *str1, char *str2, char *str3, char *str4)
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
ignore_white_space();
|
||||
|
||||
while (count < RS_MAX_TRIES) {
|
||||
if (strnicmp(str1, Mp, strlen(str1)) == 0) {
|
||||
// Mp += strlen(str1);
|
||||
diag_printf("Found required string [%s]\n", token_found = str1);
|
||||
return 0;
|
||||
} else if (strnicmp(str2, Mp, strlen(str2)) == 0) {
|
||||
// Mp += strlen(str2);
|
||||
diag_printf("Found required string [%s]\n", token_found = str2);
|
||||
return 1;
|
||||
} else if (strnicmp(str3, Mp, strlen(str3)) == 0) {
|
||||
diag_printf("Found required string [%s]\n", token_found = str3);
|
||||
return 2;
|
||||
} else if (strnicmp(str4, Mp, strlen(str4)) == 0) {
|
||||
diag_printf("Found required string [%s]\n", token_found = str4);
|
||||
return 3;
|
||||
}
|
||||
|
||||
error_display(1, "Required token = [%s], [%s], [%s], or [%s], found [%.32s].\n", str1, str2, str3, str4, next_tokens());
|
||||
|
||||
advance_to_eoln(NULL);
|
||||
ignore_white_space();
|
||||
count++;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Generic version of old required_string_3 and required_string_4; written by ngld, with some tweaks by MageKing17
|
||||
int required_string_one_of(int arg_count, ...)
|
||||
{
|
||||
@@ -1261,27 +1195,12 @@ void stuff_string(char *outstr, int type, int len, char *terminators)
|
||||
|
||||
switch (type) {
|
||||
case F_RAW:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp, read_len);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_LNAME:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp, read_len);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_NAME:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp, read_len);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_DATE:
|
||||
case F_FILESPEC:
|
||||
case F_PATHNAME:
|
||||
case F_MESSAGE:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp, read_len);
|
||||
drop_trailing_white_space(read_str);
|
||||
@@ -1295,13 +1214,6 @@ void stuff_string(char *outstr, int type, int len, char *terminators)
|
||||
required_string("$End Notes:");
|
||||
break;
|
||||
|
||||
case F_FILESPEC:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp, read_len);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
// F_MULTITEXTOLD keeping for backwards compatability with old missions
|
||||
// can be deleted once all missions are using new briefing format
|
||||
|
||||
@@ -1320,20 +1232,6 @@ void stuff_string(char *outstr, int type, int len, char *terminators)
|
||||
required_string("$end_multi_text");
|
||||
break;
|
||||
|
||||
case F_PATHNAME:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp, read_len);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_MESSAGE:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp, read_len);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
default:
|
||||
Error(LOCATION, "Unhandled string type %d in stuff_string!", type);
|
||||
}
|
||||
@@ -1371,27 +1269,12 @@ void stuff_string(SCP_string &outstr, int type, char *terminators)
|
||||
|
||||
switch (type) {
|
||||
case F_RAW:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_LNAME:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_NAME:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_DATE:
|
||||
case F_FILESPEC:
|
||||
case F_PATHNAME:
|
||||
case F_MESSAGE:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp);
|
||||
drop_trailing_white_space(read_str);
|
||||
@@ -1405,13 +1288,6 @@ void stuff_string(SCP_string &outstr, int type, char *terminators)
|
||||
required_string("$End Notes:");
|
||||
break;
|
||||
|
||||
case F_FILESPEC:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
// F_MULTITEXTOLD keeping for backwards compatability with old missions
|
||||
// can be deleted once all missions are using new briefing format
|
||||
|
||||
@@ -1430,20 +1306,6 @@ void stuff_string(SCP_string &outstr, int type, char *terminators)
|
||||
required_string("$end_multi_text");
|
||||
break;
|
||||
|
||||
case F_PATHNAME:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
case F_MESSAGE:
|
||||
ignore_gray_space();
|
||||
copy_to_eoln(read_str, terminators, Mp);
|
||||
drop_trailing_white_space(read_str);
|
||||
advance_to_eoln(terminators);
|
||||
break;
|
||||
|
||||
default:
|
||||
Error(LOCATION, "Unhandled string type %d in stuff_string!", type);
|
||||
}
|
||||
|
||||
@@ -110,8 +110,6 @@ extern int optional_string_one_of(int arg_count, ...);
|
||||
// required
|
||||
extern int required_string(char *pstr);
|
||||
extern int required_string_either(char *str1, char *str2);
|
||||
extern int required_string_3(char *str1, char *str2, char *str3);
|
||||
extern int required_string_4(char *str1, char *str2, char *str3, char *str4);
|
||||
extern int required_string_one_of(int arg_count, ...);
|
||||
|
||||
// stuff
|
||||
|
||||
+14
-12
@@ -9902,7 +9902,7 @@ void sexp_hud_set_max_targeting_range(int n)
|
||||
|
||||
if (Hud_max_targeting_range < 0) {
|
||||
Hud_max_targeting_range = 0;
|
||||
}
|
||||
}
|
||||
|
||||
multi_start_callback();
|
||||
multi_send_int(Hud_max_targeting_range);
|
||||
@@ -10491,7 +10491,7 @@ void sexp_adjust_audio_volume(int node)
|
||||
|
||||
if (n > 0) {
|
||||
int option = audio_volume_option_lookup(CTEXT(n));
|
||||
if (option > 0) {
|
||||
if (option >= 0) {
|
||||
n = CDR(n);
|
||||
|
||||
float target_volume = 1.0f;
|
||||
@@ -16541,6 +16541,7 @@ void parse_copy_damage(p_object *target_pobjp, ship *source_shipp)
|
||||
// ...and shields
|
||||
target_pobjp->ship_max_shield_strength = source_shipp->ship_max_shield_strength;
|
||||
target_pobjp->initial_shields = fl2i(get_shield_pct(source_objp) * 100.0f);
|
||||
target_pobjp->max_shield_recharge = source_shipp->max_shield_recharge;
|
||||
|
||||
|
||||
// search through all subsystems on source ship and map them onto target ship
|
||||
@@ -31465,7 +31466,8 @@ sexp_help_struct Sexp_help[] = {
|
||||
"friendly-stealth-invisible - If set, the ship can't be targeted even by ships on the same team\r\n"
|
||||
"hide-ship-name - If set, the ship name can't be seen when the ship is targeted\r\n"
|
||||
"hidden-from-sensors - If set, the ship can't be targeted and appears on radar as a blinking dot\r\n"
|
||||
"no-dynamic - Will stop allowing the AI to persue dynamic goals (eg: chasing ships it was not ordered to)\r\n"},
|
||||
"no-dynamic - Will stop allowing the AI to persue dynamic goals (eg: chasing ships it was not ordered to)\r\n"
|
||||
"no-secondary-lock-on - Will disable target acquisition for secondaries of all types (does not affect turrets)\r\n"},
|
||||
|
||||
{ OP_SHIP_VISIBLE, "ship-visible\r\n"
|
||||
"\tCauses the ships listed in this sexpression to be visible with player sensors.\r\n\r\n"
|
||||
@@ -32111,7 +32113,7 @@ sexp_help_struct Sexp_help[] = {
|
||||
"\tReturns a percentage from 0 to 100\r\n"
|
||||
"\t1: Ship name\r\n" },
|
||||
|
||||
{ OP_GET_ETS_VALUE, "get-ets-values\r\n"
|
||||
{ OP_GET_ETS_VALUE, "get-ets-value\r\n"
|
||||
"\tGets one ETS index for a ship\r\n"
|
||||
"\t1: ETS index to get, Engine|Shield|Weapon\r\n"
|
||||
"\t2: Ship name\r\n"},
|
||||
@@ -32432,8 +32434,8 @@ sexp_help_struct Sexp_help[] = {
|
||||
"\tSets the amount of ammo for the specified ballistic bank\r\n"
|
||||
"\t1: Ship name\r\n"
|
||||
"\t2: Bank to check (0, 1, and 2 are legal banks)\r\n"
|
||||
"\t3: Number to set this bank to (If this is larger than the maximimum, bank will be set to maximum).\r\n"
|
||||
"\t4: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximimum, bank will be set to maximum)"
|
||||
"\t3: Number to set this bank to (If this is larger than the maximum, bank will be set to maximum).\r\n"
|
||||
"\t4: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximum, bank will be set to maximum)"
|
||||
},
|
||||
|
||||
// Karajorma
|
||||
@@ -32441,8 +32443,8 @@ sexp_help_struct Sexp_help[] = {
|
||||
"\tSets the amount of ammo for the specified bank\r\n"
|
||||
"\t1: Ship name\r\n"
|
||||
"\t2: Bank to check (0, 1, 2 and 3 are legal banks)\r\n"
|
||||
"\t3: Number to set this bank to (If this is larger than the maximimum, bank will be set to maximum).\r\n"
|
||||
"\t4: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximimum, bank will be set to maximum)"
|
||||
"\t3: Number to set this bank to (If this is larger than the maximum, bank will be set to maximum).\r\n"
|
||||
"\t4: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximum, bank will be set to maximum)"
|
||||
},
|
||||
|
||||
// Karajorma
|
||||
@@ -32451,8 +32453,8 @@ sexp_help_struct Sexp_help[] = {
|
||||
"\t1: Ship name\r\n"
|
||||
"\t2: Bank to check (0, 1 and 2 are legal banks)\r\n"
|
||||
"\t3: Name of the primary weapon \r\n"
|
||||
"\t4: Number to set this bank to (If this is larger than the maximimum, bank will be set to maximum)\r\n"
|
||||
"\t5: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximimum, bank will be set to maximum)"
|
||||
"\t4: Number to set ammo of this bank to (If this is larger than the maximum, bank will be set to maximum)\r\n"
|
||||
"\t5: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximum, bank will be set to maximum)"
|
||||
},
|
||||
|
||||
// Karajorma
|
||||
@@ -32461,8 +32463,8 @@ sexp_help_struct Sexp_help[] = {
|
||||
"\t1: Ship name\r\n"
|
||||
"\t2: Bank to check (0, 1, 2 and 3 are legal banks)\r\n"
|
||||
"\t3: Name of the secondary weapon \r\n"
|
||||
"\t4: Number to set this bank to (If this is larger than the maximimum, bank will be set to maximum)\r\n"
|
||||
"\t5: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximimum, bank will be set to maximum)"
|
||||
"\t4: Number to set ammo of this bank to (If this is larger than the maximum, bank will be set to maximum)\r\n"
|
||||
"\t5: Rearm Limit. Support ships will only supply this number of weapons (If this is larger than the maximum, bank will be set to maximum)"
|
||||
},
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1035,7 +1035,7 @@ typedef struct sexp_node {
|
||||
|
||||
typedef struct sexp_variable {
|
||||
int type;
|
||||
char text[TOKEN_LENGTH];
|
||||
char text[256];
|
||||
char variable_name[TOKEN_LENGTH];
|
||||
} sexp_variable;
|
||||
|
||||
|
||||
@@ -101,6 +101,10 @@ void init_new_pilot(player *p, int reset)
|
||||
Mouse_sensitivity = 4;
|
||||
Joy_sensitivity = 9;
|
||||
Dead_zone_size = 10;
|
||||
|
||||
Master_sound_volume = Default_sound_volume;
|
||||
Master_event_music_volume = Default_music_volume;
|
||||
Master_voice_volume = Default_voice_volume;
|
||||
}
|
||||
|
||||
// unassigned squadron
|
||||
|
||||
@@ -637,22 +637,22 @@ void read_keyboard_controls( control_info * ci, float frame_time, physics_info *
|
||||
if (Axis_map_to[JOY_HEADING_AXIS] >= 0) {
|
||||
// check the heading on the x axis
|
||||
if ( check_control(BANK_WHEN_PRESSED) ) {
|
||||
delta = f2fl( axis[JOY_HEADING_AXIS] );
|
||||
delta = f2fl( axis[Axis_map_to[JOY_HEADING_AXIS]] );
|
||||
if ( (delta > 0.05f) || (delta < -0.05f) ) {
|
||||
ci->bank -= delta;
|
||||
}
|
||||
} else {
|
||||
ci->heading += f2fl( axis[JOY_HEADING_AXIS] );
|
||||
ci->heading += f2fl( axis[Axis_map_to[JOY_HEADING_AXIS]] );
|
||||
}
|
||||
}
|
||||
|
||||
// check the pitch on the y axis
|
||||
if (Axis_map_to[JOY_PITCH_AXIS] >= 0) {
|
||||
ci->pitch -= f2fl( axis[JOY_PITCH_AXIS] );
|
||||
ci->pitch -= f2fl( axis[Axis_map_to[JOY_PITCH_AXIS]] );
|
||||
}
|
||||
|
||||
if (Axis_map_to[JOY_BANK_AXIS] >= 0) {
|
||||
ci->bank -= f2fl( axis[JOY_BANK_AXIS] ) * 1.5f;
|
||||
ci->bank -= f2fl( axis[Axis_map_to[JOY_BANK_AXIS]] ) * 1.5f;
|
||||
}
|
||||
|
||||
// axis 2 is for throttle
|
||||
|
||||
+159
-434
@@ -83,17 +83,7 @@
|
||||
#include "debugconsole/console.h"
|
||||
#include "debugconsole/console.h"
|
||||
#include "math/vecmat.h"
|
||||
#include "cfile/cfilesystem.h"
|
||||
|
||||
#include "jansson.h"
|
||||
|
||||
#ifndef JSON_REAL_PRECISION
|
||||
#define JSON_REAL_PRECISION(n) 0
|
||||
#endif
|
||||
|
||||
#ifndef JSON_ESCAPE_SLASH
|
||||
#define JSON_ESCAPE_SLASH 0
|
||||
#endif
|
||||
|
||||
#define NUM_SHIP_SUBSYSTEM_SETS 20 // number of subobject sets to use (because of the fact that it's a linked list,
|
||||
// we can't easily go fully dynamic)
|
||||
@@ -322,6 +312,7 @@ flag_def_list Ship_flags[] = {
|
||||
{ "no lighting", SIF2_NO_LIGHTING, 1 },
|
||||
{ "auto spread shields", SIF2_AUTO_SPREAD_SHIELDS, 1 },
|
||||
{ "model point shields", SIF2_MODEL_POINT_SHIELDS, 1 },
|
||||
{ "lock detail boxes", SIF2_LOCK_DETAIL_BOXES, 1 },
|
||||
|
||||
// to keep things clean, obsolete options go last
|
||||
{ "ballistic primaries", -1, 255 }
|
||||
@@ -395,6 +386,7 @@ ship_flag_name Ship_flag_names[] = {
|
||||
{SF2_DONT_COLLIDE_INVIS, "don't-collide-invisible", 2, },
|
||||
{SF2_NO_ETS, "no-ets", 2, },
|
||||
{SF2_TOGGLE_SUBSYSTEM_SCANNING, "toggle-subsystem-scanning", 2, },
|
||||
{SF2_NO_SECONDARY_LOCKON, "no-secondary-lock-on", 2, },
|
||||
};
|
||||
|
||||
const int num_ai_tgt_weapon_flags = sizeof(ai_tgt_weapon_flags) / sizeof(flag_def_list);
|
||||
@@ -700,6 +692,7 @@ void init_ship_entry(ship_info *sip)
|
||||
sip->pof_file_hud[0] = '\0';
|
||||
sip->num_detail_levels = 1;
|
||||
sip->detail_distance[0] = 0;
|
||||
sip->collision_lod = -1;
|
||||
sip->cockpit_model_num = -1;
|
||||
sip->model_num = -1;
|
||||
sip->model_num_hud = -1;
|
||||
@@ -875,9 +868,12 @@ void init_ship_entry(ship_info *sip)
|
||||
sip->max_hull_strength = 100.0f;
|
||||
sip->max_shield_strength = 0.0f;
|
||||
|
||||
sip->max_shield_recharge = 1.0f;
|
||||
|
||||
sip->auto_shield_spread = 0.0f;
|
||||
sip->auto_shield_spread_bypass = false;
|
||||
sip->auto_shield_spread_from_lod = -1;
|
||||
sip->auto_shield_spread_min_span = -1.0f;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
@@ -958,6 +954,7 @@ void init_ship_entry(ship_info *sip)
|
||||
sip->thruster02_glow_len_factor = 1.0f;
|
||||
sip->thruster_dist_rad_factor = 2.0f;
|
||||
sip->thruster_dist_len_factor = 2.0f;
|
||||
sip->thruster_glow_noise_mult = 1.0f;
|
||||
|
||||
sip->draw_distortion = true;
|
||||
|
||||
@@ -977,11 +974,14 @@ void init_ship_entry(ship_info *sip)
|
||||
sip->newtonian_damp_override = false;
|
||||
|
||||
sip->autoaim_fov = 0.0f;
|
||||
sip->autoaim_lock_snd = -1;
|
||||
sip->autoaim_lost_snd = -1;
|
||||
|
||||
sip->topdown_offset_def = false;
|
||||
vm_vec_zero(&sip->topdown_offset);
|
||||
|
||||
sip->engine_snd = -1;
|
||||
sip->min_engine_vol = -1.0f;
|
||||
sip->glide_start_snd = -1;
|
||||
sip->glide_end_snd = -1;
|
||||
|
||||
@@ -1019,6 +1019,7 @@ void init_ship_entry(ship_info *sip)
|
||||
|
||||
sip->damage_lightning_type = SLT_DEFAULT;
|
||||
|
||||
sip->shield_impact_explosion_anim = -1;
|
||||
sip->hud_gauges.clear();
|
||||
sip->hud_enabled = false;
|
||||
sip->hud_retail = false;
|
||||
@@ -1674,6 +1675,13 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
sip->num_detail_levels = stuff_int_list(sip->detail_distance, MAX_SHIP_DETAIL_LEVELS, RAW_INTEGER_TYPE);
|
||||
}
|
||||
|
||||
if(optional_string("$Collision LOD:")) {
|
||||
stuff_int(&sip->collision_lod);
|
||||
|
||||
// Cap to sane values, just in case
|
||||
sip->collision_lod = MAX(0, MIN(sip->collision_lod, sip->num_detail_levels));
|
||||
}
|
||||
|
||||
// check for optional pixel colors
|
||||
while(optional_string("$ND:")){
|
||||
ubyte nr, ng, nb;
|
||||
@@ -2010,6 +2018,9 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
|
||||
if(optional_string("+Minimum Distance:"))
|
||||
stuff_float(&sip->minimum_convergence_distance);
|
||||
|
||||
parse_sound("+Autoaim Lock Snd:", &sip->autoaim_lock_snd, sip->name);
|
||||
parse_sound("+Autoaim Lost Snd:", &sip->autoaim_lost_snd, sip->name);
|
||||
}
|
||||
|
||||
if(optional_string("$Convergence:"))
|
||||
@@ -2316,6 +2327,11 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
if(optional_string("+Auto Spread:")) {
|
||||
stuff_float(&sip->auto_shield_spread);
|
||||
}
|
||||
if(optional_string("+Minimum Weapon Span:")) {
|
||||
stuff_float(&sip->auto_shield_spread_min_span);
|
||||
} else {
|
||||
sip->auto_shield_spread_min_span = sip->auto_shield_spread;
|
||||
}
|
||||
if(optional_string("+Allow Bypass:")) {
|
||||
stuff_boolean(&sip->auto_shield_spread_bypass);
|
||||
}
|
||||
@@ -2365,6 +2381,19 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
stuff_ubyte(&sip->shield_color[2]);
|
||||
}
|
||||
|
||||
if(optional_string("$Shield Impact Explosion:")) {
|
||||
char fname[MAX_NAME_LEN];
|
||||
stuff_string(fname, F_NAME, NAME_LENGTH);
|
||||
|
||||
if ( VALID_FNAME(fname) )
|
||||
sip->shield_impact_explosion_anim = Weapon_explosions.Load(fname);
|
||||
}
|
||||
|
||||
if(optional_string("$Max Shield Recharge:")){
|
||||
stuff_float(&sip->max_shield_recharge);
|
||||
CLAMP(sip->max_shield_recharge, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
// The next five fields are used for the ETS
|
||||
if (optional_string("$Power Output:"))
|
||||
stuff_float(&sip->power_output);
|
||||
@@ -2670,6 +2699,9 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
//Parse the engine sound
|
||||
parse_sound("$EngineSnd:", &sip->engine_snd, sip->name);
|
||||
|
||||
if(optional_string("$Minimum Engine Volume:"))
|
||||
stuff_float(&sip->min_engine_vol);
|
||||
|
||||
//Parse optional sound to be used for beginning of a glide
|
||||
parse_sound("$GlideStartSnd:", &sip->glide_start_snd, sip->name);
|
||||
|
||||
@@ -2726,6 +2758,32 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
stuff_string(sip->icon_filename, F_NAME, MAX_FILENAME_LEN);
|
||||
}
|
||||
|
||||
if ( optional_string("$Model Icon Direction:") ) {
|
||||
char str[NAME_LENGTH];
|
||||
stuff_string(str, F_NAME, NAME_LENGTH);
|
||||
|
||||
angles model_icon_angles = {0.0f,0.0f,0.0f};
|
||||
|
||||
if (!stricmp(str, "top")) {
|
||||
model_icon_angles.p = -PI_2;
|
||||
} else if (!stricmp(str, "bottom")) {
|
||||
model_icon_angles.p = -PI_2;
|
||||
model_icon_angles.b = 2 * PI_2;
|
||||
} else if (!stricmp(str, "front")) {
|
||||
model_icon_angles.h = 2 * PI_2;
|
||||
} else if (!stricmp(str, "back")) {
|
||||
model_icon_angles.h = 4 * PI_2;
|
||||
} else if (!stricmp(str, "left")) {
|
||||
model_icon_angles.h = -PI_2;
|
||||
} else if (!stricmp(str, "right")) {
|
||||
model_icon_angles.h = PI_2;
|
||||
} else {
|
||||
Warning(LOCATION, "Unrecognized value \"%s\" passed to $Model Icon Direction, ignoring...", str);
|
||||
}
|
||||
|
||||
sip->model_icon_angles = model_icon_angles;
|
||||
}
|
||||
|
||||
// read in filename for animation that is used in ship selection
|
||||
if ( optional_string("$Ship_anim:") ) {
|
||||
stuff_string(sip->anim_filename, F_NAME, MAX_FILENAME_LEN);
|
||||
@@ -2875,6 +2933,10 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
stuff_boolean(&sip->draw_distortion);
|
||||
}
|
||||
|
||||
if ( optional_string("$Thruster Glow Noise Mult:") ) {
|
||||
stuff_float(&sip->thruster_glow_noise_mult);
|
||||
}
|
||||
|
||||
while ( optional_string("$Thruster Particles:") ) {
|
||||
bool afterburner = false;
|
||||
thruster_particles tpart;
|
||||
@@ -3149,6 +3211,15 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
stuff_vec3d(&metadata.departure_rvec);
|
||||
}
|
||||
|
||||
if (optional_string("+arrive speed multiplier:"))
|
||||
{
|
||||
stuff_float(&metadata.arrive_speed_mult);
|
||||
}
|
||||
if (optional_string("+depart speed multiplier:"))
|
||||
{
|
||||
stuff_float(&metadata.depart_speed_mult);
|
||||
}
|
||||
|
||||
//Add the new path_metadata to sip->pathMetadata keyed by path name
|
||||
SCP_string pathName(path_name);
|
||||
sip->pathMetadata[pathName] = metadata;
|
||||
@@ -3169,7 +3240,7 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
}
|
||||
|
||||
while (cont_flag) {
|
||||
int r = required_string_3("#End", "$Subsystem:", "$Name" );
|
||||
int r = required_string_one_of(3, "#End", "$Subsystem:", "$Name" );
|
||||
switch (r) {
|
||||
case 0:
|
||||
cont_flag = 0;
|
||||
@@ -3667,8 +3738,10 @@ int parse_ship_values(ship_info* sip, bool first_time, bool replace)
|
||||
case 2:
|
||||
cont_flag = 0;
|
||||
break;
|
||||
case -1: // Possible return value if -noparseerrors is used
|
||||
break;
|
||||
default:
|
||||
Int3(); // Impossible return value from required_string_3.
|
||||
Assertion(false, "This should never happen.\n"); // Impossible return value from required_string_one_of.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5027,12 +5100,14 @@ void ship_set(int ship_index, int objnum, int ship_type)
|
||||
}
|
||||
objp->hull_strength = shipp->ship_max_hull_strength;
|
||||
|
||||
shipp->max_shield_recharge = sip->max_shield_recharge;
|
||||
|
||||
if (Fred_running) {
|
||||
shipp->ship_max_shield_strength = 100.0f;
|
||||
objp->shield_quadrant[0] = 100.0f;
|
||||
} else {
|
||||
shipp->ship_max_shield_strength = sip->max_shield_strength;
|
||||
shield_set_strength(objp, shipp->ship_max_shield_strength);
|
||||
shield_set_strength(objp, shipp->ship_max_shield_strength * shipp->max_shield_recharge);
|
||||
}
|
||||
|
||||
if (sip->flags2 & SIF2_MODEL_POINT_SHIELDS) {
|
||||
@@ -6113,7 +6188,7 @@ void ship_render(object * obj)
|
||||
mst.distortion_bitmap = shipp->thruster_distortion_bitmap;
|
||||
|
||||
mst.use_ab = (obj->phys_info.flags & PF_AFTERBURNER_ON) || (obj->phys_info.flags & PF_BOOSTER_ON);
|
||||
mst.glow_noise = shipp->thruster_glow_noise;
|
||||
mst.glow_noise = shipp->thruster_glow_noise * sip->thruster_glow_noise_mult;
|
||||
mst.rotvel = &Objects[shipp->objnum].phys_info.rotvel;
|
||||
|
||||
mst.glow_rad_factor = sip->thruster01_glow_rad_factor;
|
||||
@@ -9192,6 +9267,8 @@ void change_ship_type(int n, int ship_type, int by_sexp)
|
||||
objp->hull_strength = hull_pct * sp->ship_max_hull_strength;
|
||||
}
|
||||
|
||||
sp->max_shield_recharge = sip->max_shield_recharge;
|
||||
|
||||
// set the correct shield strength
|
||||
if (Fred_running) {
|
||||
if (sp->ship_max_shield_strength)
|
||||
@@ -9835,6 +9912,70 @@ int tracers[MAX_SHIPS][4][4];
|
||||
|
||||
float ship_get_subsystem_strength( ship *shipp, int type );
|
||||
|
||||
/**
|
||||
* Checks whether a ship would use autoaim if it were to fire its primaries at
|
||||
* the given object, taking lead into account.
|
||||
*
|
||||
* @param shipp the ship to check
|
||||
* @param bank_to_fire the assumed primary bank
|
||||
* @param obj the object to check; must be the ship's current target
|
||||
*/
|
||||
|
||||
bool in_autoaim_fov(ship *shipp, int bank_to_fire, object *obj)
|
||||
{
|
||||
// Most of the code of this function has been duplicated from
|
||||
// ship_fire_primary(), because it is not easy to encapsulate cleanly.
|
||||
|
||||
ship_info *sip;
|
||||
ai_info *aip;
|
||||
ship_weapon *swp;
|
||||
|
||||
bool has_autoaim, has_converging_autoaim;
|
||||
float autoaim_fov = 0;
|
||||
float dist_to_target = 0;
|
||||
|
||||
vec3d plr_to_target_vec;
|
||||
vec3d player_forward_vec = Objects[shipp->objnum].orient.vec.fvec;
|
||||
|
||||
vec3d target_position;
|
||||
|
||||
sip = &Ship_info[shipp->ship_info_index];
|
||||
aip = &Ai_info[shipp->ai_index];
|
||||
|
||||
swp = &shipp->weapons;
|
||||
int weapon = swp->primary_bank_weapons[bank_to_fire];
|
||||
weapon_info* winfo_p = &Weapon_info[weapon];
|
||||
|
||||
has_converging_autoaim = ((sip->aiming_flags & AIM_FLAG_AUTOAIM_CONVERGENCE || (The_mission.ai_profile->player_autoaim_fov[Game_skill_level] > 0.0f && !( Game_mode & GM_MULTIPLAYER ))) && aip->target_objnum != -1);
|
||||
has_autoaim = ((has_converging_autoaim || (sip->aiming_flags & AIM_FLAG_AUTOAIM)) && aip->target_objnum != -1);
|
||||
|
||||
if (!has_autoaim)
|
||||
return FALSE;
|
||||
|
||||
autoaim_fov = MAX(shipp->autoaim_fov, The_mission.ai_profile->player_autoaim_fov[Game_skill_level]);
|
||||
|
||||
if (aip->targeted_subsys != NULL)
|
||||
{
|
||||
get_subsystem_world_pos(&Objects[aip->target_objnum], aip->targeted_subsys, &target_position);
|
||||
}
|
||||
else
|
||||
{
|
||||
target_position = obj->pos;
|
||||
}
|
||||
|
||||
dist_to_target = vm_vec_dist_quick(&Objects[shipp->objnum].pos, &target_position);
|
||||
|
||||
hud_calculate_lead_pos(&plr_to_target_vec, &target_position, obj, winfo_p, dist_to_target);
|
||||
vm_vec_sub2(&plr_to_target_vec, &Objects[shipp->objnum].pos);
|
||||
|
||||
float angle_to_target = vm_vec_delta_ang(&player_forward_vec, &plr_to_target_vec, NULL);
|
||||
|
||||
if (angle_to_target <= autoaim_fov)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
// fires a primary weapon for the given object. It also handles multiplayer cases.
|
||||
// in multiplayer, the starting network signature, and number of banks fired are sent
|
||||
// to all the clients in the game. All the info is passed to send_primary at the end of
|
||||
@@ -12598,7 +12739,7 @@ float ship_calculate_rearm_duration( object *objp )
|
||||
|
||||
//find out time to repair shields
|
||||
if(sip->sup_shield_repair_rate > 0.0f)
|
||||
shield_rep_time = (sp->ship_max_shield_strength - shield_get_strength(objp)) / (sp->ship_max_shield_strength * sip->sup_shield_repair_rate);
|
||||
shield_rep_time = ((sp->ship_max_shield_strength * sp->max_shield_recharge) - shield_get_strength(objp)) / (sp->max_shield_recharge * sp->ship_max_shield_strength * sip->sup_shield_repair_rate);
|
||||
|
||||
max_hull_repair = sp->ship_max_hull_strength * (The_mission.support_ships.max_hull_repair_val * 0.01f);
|
||||
if ((The_mission.flags & MISSION_FLAG_SUPPORT_REPAIRS_HULL) && (max_hull_repair > objp->hull_strength) && (sip->sup_hull_repair_rate > 0.0f))
|
||||
@@ -12734,7 +12875,7 @@ int ship_do_rearm_frame( object *objp, float frametime )
|
||||
if ( !(objp->flags & OF_NO_SHIELDS) )
|
||||
{
|
||||
shield_str = shield_get_strength(objp);
|
||||
if ( shield_str < shipp->ship_max_shield_strength ) {
|
||||
if ( shield_str < (shipp->ship_max_shield_strength * shipp->max_shield_recharge) ) {
|
||||
if ( objp == Player_obj ) {
|
||||
player_maybe_start_repair_sound();
|
||||
}
|
||||
@@ -17729,6 +17870,8 @@ int ship_get_subobj_model_num(ship_info* sip, char* subobj_name)
|
||||
void init_path_metadata(path_metadata& metadata)
|
||||
{
|
||||
vm_vec_zero(&metadata.departure_rvec);
|
||||
metadata.arrive_speed_mult = FLT_MIN;
|
||||
metadata.depart_speed_mult = FLT_MIN;
|
||||
}
|
||||
|
||||
int ship_get_sound(object *objp, GameSoundsIndex id)
|
||||
@@ -17800,421 +17943,3 @@ int get_nearest_bbox_point(object *ship_obj, vec3d *start, vec3d *box_pt)
|
||||
|
||||
return inside;
|
||||
}
|
||||
|
||||
bool check_restricted(const ship_info* sip, json_t* bank_json, bool restricted, int bank, int weapon_idx, int weapon_type)
|
||||
{
|
||||
// bank is a bank index, weapon_idx is a weapon type. sip->allowed_bank_restricted_weapons[bank][weapon_idx] is a 2-bit bitfield.
|
||||
if(sip->allowed_bank_restricted_weapons[bank][weapon_idx] & weapon_type)
|
||||
{
|
||||
json_array_append(bank_json, json_string(Weapon_info[weapon_idx].name));
|
||||
if(!restricted && bank > 0)
|
||||
{
|
||||
restricted = true;
|
||||
}
|
||||
}
|
||||
|
||||
return restricted;
|
||||
}
|
||||
|
||||
void append_weapons(const ship_info* sip, json_t* ship_data, bool is_primary, int bank_offset)
|
||||
{
|
||||
int bank, weapon_idx, num_banks;
|
||||
bool restricted = false, dogfight_restricted = false;
|
||||
json_t *Allowed_banks = json_array();
|
||||
json_t *Allowed_dogfight_banks = json_array();
|
||||
json_t *Default_banks = json_array();
|
||||
json_t *Bank_capacity = json_array();
|
||||
json_t *Show_models = json_array();
|
||||
char Allowed_Banks_name[16], Allowed_Dogfight_Banks_name[25], Default_Banks_name[16], Bank_Capacity_name[16], Show_Models_name[23], type_name[10];
|
||||
|
||||
if(is_primary)
|
||||
{
|
||||
num_banks = sip->num_primary_banks;
|
||||
strcpy_s(type_name, "Primary");
|
||||
}
|
||||
else
|
||||
{
|
||||
num_banks = sip->num_secondary_banks;
|
||||
strcpy_s(type_name, "Secondary");
|
||||
}
|
||||
sprintf(Allowed_Banks_name, "$Allowed %cBanks", type_name[0]);
|
||||
sprintf(Allowed_Dogfight_Banks_name, "$Allowed Dogfight %cBanks", type_name[0]);
|
||||
sprintf(Default_Banks_name, "$Default %cBanks", type_name[0]);
|
||||
sprintf(Bank_Capacity_name, "$%cBank Capacity", type_name[0]);
|
||||
sprintf(Show_Models_name, "$Show %s Models", type_name);
|
||||
|
||||
for(bank = bank_offset; bank < bank_offset + num_banks; bank++)
|
||||
{
|
||||
json_t *regular_bank = json_array();
|
||||
json_t *dogfight_bank = json_array();
|
||||
for(weapon_idx = 0; weapon_idx < Num_weapon_types; weapon_idx++)
|
||||
{
|
||||
restricted = check_restricted(sip, regular_bank, restricted, bank, weapon_idx, REGULAR_WEAPON);
|
||||
dogfight_restricted = check_restricted(sip, dogfight_bank, dogfight_restricted, bank, weapon_idx, DOGFIGHT_WEAPON);
|
||||
}
|
||||
json_array_append(Allowed_banks, regular_bank);
|
||||
json_array_append(Allowed_dogfight_banks, dogfight_bank);
|
||||
|
||||
if(is_primary)
|
||||
{
|
||||
json_array_append(Default_banks, json_string(Weapon_info[sip->primary_bank_weapons[bank - bank_offset]].name));
|
||||
json_array_append(Bank_capacity, json_integer(sip->primary_bank_ammo_capacity[bank - bank_offset]));
|
||||
json_array_append(Show_models, json_boolean(sip->draw_primary_models[bank - bank_offset]));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_array_append(Default_banks, json_string(Weapon_info[sip->secondary_bank_weapons[bank - bank_offset]].name));
|
||||
json_array_append(Bank_capacity, json_integer(sip->secondary_bank_ammo_capacity[bank - bank_offset]));
|
||||
json_array_append(Show_models, json_boolean(sip->draw_secondary_models[bank - bank_offset]));
|
||||
}
|
||||
}
|
||||
json_object_set_new(ship_data, Allowed_Banks_name, (restricted ? Allowed_banks : json_array_get(Allowed_banks, 0)));
|
||||
json_object_set_new(ship_data, Allowed_Dogfight_Banks_name, (dogfight_restricted ? Allowed_dogfight_banks : json_array_get(Allowed_dogfight_banks, 0)));
|
||||
json_object_set_new(ship_data, Default_Banks_name, Default_banks);
|
||||
json_object_set_new(ship_data, Bank_Capacity_name, Bank_capacity);
|
||||
json_object_set_new(ship_data, Show_Models_name, Show_models);
|
||||
}
|
||||
|
||||
void ship_output_json(const char *outfile)
|
||||
{
|
||||
mprintf(("Exporting ship data to json.\n"));
|
||||
|
||||
int i;
|
||||
json_t *ships_obj = json_object();
|
||||
json_t *Ships = json_array();
|
||||
ship_info *sip;
|
||||
species_info *species;
|
||||
char full_name[MAX_PATH_LEN];
|
||||
|
||||
json_object_set_new(ships_obj, "default_player_ship", json_string(default_player_ship));
|
||||
|
||||
// Loop over the Ship_info array and add a new entry to ship_info_arr each time
|
||||
for (i = 0; i < Num_ship_classes; i++)
|
||||
{
|
||||
int j;
|
||||
sip = &Ship_info[i];
|
||||
species = &Species_info[sip->species];
|
||||
json_t *ship_data = json_object();
|
||||
json_t *Displays = json_array();
|
||||
json_t *Replacements = json_array();
|
||||
json_t *Cockpit_offset = json_object();
|
||||
json_t *Detail_distance = json_array();
|
||||
json_t *ND = json_array();
|
||||
json_t *Impact = json_object();
|
||||
json_t *Collision_Physics = json_object();
|
||||
json_t *Debris = json_object();
|
||||
json_t *Max_Velocity = json_object();
|
||||
json_t *Rotation_Time = json_object();
|
||||
json_t *Anims = json_array();
|
||||
json_t *Model_point_shield_controls = json_array();
|
||||
size_t insert_index, shield_point;
|
||||
json_t *quadrant;
|
||||
json_t *Shield_color = json_object();
|
||||
|
||||
json_object_set_new(ship_data, "$Name", json_string(sip->name));
|
||||
json_object_set_new(ship_data, "$Alt Name", json_string(sip->alt_name));
|
||||
json_object_set_new(ship_data, "$Short Name", json_string(sip->short_name));
|
||||
json_object_set_new(ship_data, "$Species", json_string(species->species_name));
|
||||
json_object_set_new(ship_data, "+Type", json_string(sip->type_str));
|
||||
json_object_set_new(ship_data, "+Maneuverability", json_string(sip->maneuverability_str));
|
||||
json_object_set_new(ship_data, "+Armor", json_string(sip->armor_str));
|
||||
json_object_set_new(ship_data, "+Manufacturer", json_string(sip->manufacturer_str));
|
||||
json_object_set_new(ship_data, "+Description", json_string(sip->desc));
|
||||
json_object_set_new(ship_data, "+Tech Title", json_string(sip->tech_title));
|
||||
json_object_set_new(ship_data, "+Tech Description", json_string(sip->tech_desc));
|
||||
json_object_set_new(ship_data, "+Length", json_string(sip->ship_length));
|
||||
json_object_set_new(ship_data, "+Gun Mounts", json_string(sip->gun_mounts));
|
||||
json_object_set_new(ship_data, "+Missile Banks", json_string(sip->missile_banks));
|
||||
switch(sip->selection_effect)
|
||||
{
|
||||
case 0:
|
||||
json_object_set_new(ship_data, "$Selection Effect", json_string("off"));
|
||||
break;
|
||||
case 1:
|
||||
json_object_set_new(ship_data, "$Selection Effect", json_string("FS1"));
|
||||
break;
|
||||
case 2:
|
||||
default:
|
||||
json_object_set_new(ship_data, "$Selection Effect", json_string("FS2"));
|
||||
}
|
||||
json_object_set_new(ship_data, "$Cockpit POF file", json_string(sip->cockpit_pof_file));
|
||||
json_object_set_new(Cockpit_offset, "x", json_real(sip->cockpit_offset.xyz.x));
|
||||
json_object_set_new(Cockpit_offset, "y", json_real(sip->cockpit_offset.xyz.y));
|
||||
json_object_set_new(Cockpit_offset, "z", json_real(sip->cockpit_offset.xyz.z));
|
||||
json_object_set_new(ship_data, "+Cockpit offset", Cockpit_offset);
|
||||
for(SCP_vector<cockpit_display_info>::iterator display = sip->displays.begin(); display != sip->displays.end(); ++display)
|
||||
{
|
||||
json_t *display_data = json_object();
|
||||
json_t *offsets = json_array();
|
||||
json_t *size = json_array();
|
||||
|
||||
json_object_set_new(display_data, "+Texture", json_string(display->filename));
|
||||
json_array_append_new(offsets, json_integer(display->offset[0]));
|
||||
json_array_append_new(offsets, json_integer(display->offset[1]));
|
||||
json_object_set_new(display_data, "+Offsets", offsets);
|
||||
json_array_append_new(size, json_integer(display->size[0]));
|
||||
json_array_append_new(size, json_integer(display->size[1]));
|
||||
json_object_set_new(display_data, "+Size", size);
|
||||
json_object_set_new(display_data, "+Background", json_string(display->bg_filename));
|
||||
json_object_set_new(display_data, "+Foreground", json_string(display->fg_filename));
|
||||
json_object_set_new(display_data, "+Display Name", json_string(display->name));
|
||||
|
||||
json_array_append_new(Displays, display_data);
|
||||
}
|
||||
json_object_set_new(ship_data, "$Cockpit Display", Displays);
|
||||
json_object_set_new(ship_data, "$POF file", json_string(sip->pof_file));
|
||||
for(SCP_vector<texture_replace>::iterator replace = sip->replacement_textures.begin(); replace != sip->replacement_textures.end(); ++replace)
|
||||
{
|
||||
json_t *replace_data = json_object();
|
||||
|
||||
json_object_set_new(replace_data, "+old", json_string(replace->old_texture));
|
||||
json_object_set_new(replace_data, "+new", json_string(replace->new_texture));
|
||||
|
||||
json_array_append_new(Replacements, replace_data);
|
||||
}
|
||||
json_object_set_new(ship_data, "$Texture Replace", Replacements);
|
||||
json_object_set_new(ship_data, "$POF target file", json_string(sip->pof_file_hud));
|
||||
json_object_set_new(ship_data, "$POF target LOD", json_integer(sip->hud_target_lod));
|
||||
for (j = 0; j < sip->num_detail_levels; j++)
|
||||
{
|
||||
json_array_append_new(Detail_distance, json_integer(sip->detail_distance[j]));
|
||||
}
|
||||
json_object_set_new(ship_data, "$Detail distance", Detail_distance);
|
||||
for (j = 0; j < sip->num_nondark_colors; j++)
|
||||
{
|
||||
json_t *nd_values = json_object();
|
||||
|
||||
json_object_set_new(nd_values, "red", json_integer(sip->nondark_colors[j][0]));
|
||||
json_object_set_new(nd_values, "green", json_integer(sip->nondark_colors[j][1]));
|
||||
json_object_set_new(nd_values, "blue", json_integer(sip->nondark_colors[j][2]));
|
||||
|
||||
json_array_append_new(ND, nd_values);
|
||||
}
|
||||
json_object_set_new(ship_data, "$ND", ND);
|
||||
json_object_set_new(ship_data, "$Enable Team Colors", json_boolean(sip->uses_team_colors));
|
||||
json_object_set_new(ship_data, "$Default Team", json_string(sip->default_team_name.c_str()));
|
||||
json_object_set_new(ship_data, "$Damage Lightning Type", json_string(Lightning_types[sip->damage_lightning_type]));
|
||||
if(sip->collision_damage_type_idx > -1 && sip->collision_damage_type_idx < Damage_types.size())
|
||||
{
|
||||
json_object_set_new(Impact, "+Damage Type", json_string(Damage_types.at(sip->collision_damage_type_idx).name));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(Impact, "+Damage Type", json_null());
|
||||
}
|
||||
json_object_set_new(ship_data, "$Impact", Impact);
|
||||
// Skipping spews
|
||||
json_object_set_new(Collision_Physics, "+Bounce", json_real(sip->collision_physics.bounce));
|
||||
json_object_set_new(Collision_Physics, "+Both Small Bounce", json_real(sip->collision_physics.both_small_bounce));
|
||||
json_object_set_new(Collision_Physics, "+Friction", json_real(sip->collision_physics.friction));
|
||||
json_object_set_new(Collision_Physics, "+Rotation Factor", json_real(sip->collision_physics.rotation_factor));
|
||||
json_object_set_new(Collision_Physics, "+Landing Max Forward Vel", json_real(sip->collision_physics.landing_max_z));
|
||||
json_object_set_new(Collision_Physics, "+Landing Min Forward Vel", json_real(sip->collision_physics.landing_min_z));
|
||||
json_object_set_new(Collision_Physics, "+Landing Max Descent Vel", json_real(sip->collision_physics.landing_min_y));
|
||||
json_object_set_new(Collision_Physics, "+Landing Max Horizontal Vel", json_real(sip->collision_physics.landing_max_x));
|
||||
json_object_set_new(Collision_Physics, "+Landing Max Angle", json_real(sip->collision_physics.landing_max_angle));
|
||||
json_object_set_new(Collision_Physics, "+Landing Min Angle", json_real(sip->collision_physics.landing_min_angle));
|
||||
json_object_set_new(Collision_Physics, "+Landing Max Rotate Angle", json_real(sip->collision_physics.landing_max_rot_angle));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Max Forward Vel", json_real(sip->collision_physics.reorient_max_z));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Min Forward Vel", json_real(sip->collision_physics.reorient_min_z));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Max Descent Vel", json_real(sip->collision_physics.reorient_min_y));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Max Horizontal Vel", json_real(sip->collision_physics.reorient_max_x));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Max Angle", json_real(sip->collision_physics.reorient_max_angle));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Min Angle", json_real(sip->collision_physics.reorient_min_angle));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Max Rotate Angle", json_real(sip->collision_physics.reorient_max_rot_angle));
|
||||
json_object_set_new(Collision_Physics, "+Reorient Speed Mult", json_real(sip->collision_physics.reorient_mult));
|
||||
json_object_set_new(Collision_Physics, "+Landing Rest Angle", json_real(sip->collision_physics.landing_rest_angle));
|
||||
if(sip->collision_damage_type_idx > -1 && sip->collision_damage_type_idx < Snds.size())
|
||||
{
|
||||
json_object_set_new(Collision_Physics, "+Landing Sound", json_string(Snds.at(sip->collision_physics.landing_sound_idx).name.c_str()));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(Collision_Physics, "+Landing Sound", json_null());
|
||||
}
|
||||
json_object_set_new(ship_data, "$Collision Physics", Collision_Physics);
|
||||
json_object_set_new(Debris, "+Min Lifetime", json_real(sip->debris_min_lifetime));
|
||||
json_object_set_new(Debris, "+Max Lifetime", json_real(sip->debris_max_lifetime));
|
||||
json_object_set_new(Debris, "+Min Speed", json_real(sip->debris_min_speed));
|
||||
json_object_set_new(Debris, "+Max Speed", json_real(sip->debris_max_speed));
|
||||
json_object_set_new(Debris, "+Min Rotation speed", json_real(sip->debris_min_rotspeed));
|
||||
json_object_set_new(Debris, "+Max Rotation speed", json_real(sip->debris_max_rotspeed));
|
||||
if(sip->collision_damage_type_idx > -1 && sip->collision_damage_type_idx < Damage_types.size())
|
||||
{
|
||||
json_object_set_new(Debris, "+Damage Type", json_string(Damage_types.at(sip->debris_damage_type_idx).name));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(Debris, "+Damage Type", json_null());
|
||||
}
|
||||
json_object_set_new(Debris, "+Min Hitpoints", json_real(sip->debris_min_hitpoints));
|
||||
json_object_set_new(Debris, "+Max Hitpoints", json_real(sip->debris_max_hitpoints));
|
||||
json_object_set_new(Debris, "+Damage Multiplier", json_real(sip->debris_damage_mult));
|
||||
json_object_set_new(Debris, "+Lightning Arc Percent", json_real(sip->debris_arc_percent * 100.0f));
|
||||
json_object_set_new(ship_data, "$Debris", Debris);
|
||||
json_object_set_new(ship_data, "$Density", json_real(sip->density));
|
||||
json_object_set_new(ship_data, "$Damp", json_real(sip->damp));
|
||||
json_object_set_new(ship_data, "$Rotdamp", json_real(sip->rotdamp));
|
||||
json_object_set_new(ship_data, "$Banking Constant", json_real(sip->delta_bank_const));
|
||||
json_object_set_new(Max_Velocity, "x", json_real(sip->max_vel.xyz.x));
|
||||
json_object_set_new(Max_Velocity, "y", json_real(sip->max_vel.xyz.y));
|
||||
json_object_set_new(Max_Velocity, "z", json_real(sip->max_vel.xyz.z));
|
||||
json_object_set_new(ship_data, "$Max Velocity", Max_Velocity);
|
||||
json_object_set_new(Rotation_Time, "x", json_real(sip->rotation_time.xyz.x));
|
||||
json_object_set_new(Rotation_Time, "y", json_real(sip->rotation_time.xyz.y));
|
||||
json_object_set_new(Rotation_Time, "z", json_real(sip->rotation_time.xyz.z));
|
||||
json_object_set_new(ship_data, "$Rotation Time", Rotation_Time);
|
||||
json_object_set_new(ship_data, "$Rear Velocity", json_real(sip->max_rear_vel));
|
||||
json_object_set_new(ship_data, "$Forward accel", json_real(sip->forward_accel));
|
||||
json_object_set_new(ship_data, "$Forward decel", json_real(sip->forward_decel));
|
||||
json_object_set_new(ship_data, "$Slide accel", json_real(sip->slide_accel));
|
||||
json_object_set_new(ship_data, "$Slide decel", json_real(sip->slide_decel));
|
||||
json_object_set_new(ship_data, "$Glide", json_boolean(sip->can_glide));
|
||||
json_object_set_new(ship_data, "+Dynamic Glide Cap", json_boolean(sip->glide_dynamic_cap));
|
||||
json_object_set_new(ship_data, "+Max Glide Speed", json_real(sip->glide_cap));
|
||||
json_object_set_new(ship_data, "+Glide Accel Mult", json_real(sip->glide_accel_mult));
|
||||
json_object_set_new(ship_data, "$Use Newtonian Dampening", json_boolean(sip->use_newtonian_damp));
|
||||
json_object_set_new(ship_data, "$Autoaim FOV", json_integer(sip->autoaim_fov));
|
||||
// Skipping convergence, ugh...
|
||||
json_object_set_new(ship_data, "$Warpin type", json_string(Warp_types[sip->warpin_type]));
|
||||
if(sip->warpin_snd_start > -1 && sip->warpin_snd_start < Snds.size())
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpin Start Sound", json_string(Snds.at(sip->warpin_snd_start).name.c_str()));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpin Start Sound", json_null());
|
||||
}
|
||||
if(sip->warpin_snd_end > -1 && sip->warpin_snd_end < Snds.size())
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpin End Sound", json_string(Snds.at(sip->warpin_snd_end).name.c_str()));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpin End Sound", json_null());
|
||||
}
|
||||
json_object_set_new(ship_data, "$Warpin speed", json_real(sip->warpin_speed));
|
||||
json_object_set_new(ship_data, "$Warpin time", json_real(sip->warpin_time));
|
||||
json_object_set_new(ship_data, "$Warpin decel exp", json_real(sip->warpin_decel_exp));
|
||||
json_object_set_new(ship_data, "$Warpin radius", json_real(sip->warpin_radius));
|
||||
json_object_set_new(ship_data, "$Warpin animation", json_string(sip->warpin_anim));
|
||||
json_object_set_new(ship_data, "$Warpout type", json_string(Warp_types[sip->warpout_type]));
|
||||
if(sip->warpout_snd_start > -1 && sip->warpout_snd_start < Snds.size())
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpout Start Sound", json_string(Snds.at(sip->warpout_snd_start).name.c_str()));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpout Start Sound", json_null());
|
||||
}
|
||||
if(sip->warpout_snd_end > -1 && sip->warpout_snd_end < Snds.size())
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpout End Sound", json_string(Snds.at(sip->warpout_snd_end).name.c_str()));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(ship_data, "$Warpout End Sound", json_null());
|
||||
}
|
||||
json_object_set_new(ship_data, "$Warpout engage time", json_real(sip->warpout_engage_time));
|
||||
json_object_set_new(ship_data, "$Warpout speed", json_real(sip->warpout_speed));
|
||||
json_object_set_new(ship_data, "$Warpout time", json_real(sip->warpout_time));
|
||||
json_object_set_new(ship_data, "$Warpout accel exp", json_real(sip->warpout_accel_exp));
|
||||
json_object_set_new(ship_data, "$Warpout radius", json_real(sip->warpout_radius));
|
||||
json_object_set_new(ship_data, "$Warpout animation", json_string(sip->warpout_anim));
|
||||
json_object_set_new(ship_data, "$Player warpout speed", json_real(sip->warpout_player_speed));
|
||||
json_object_set_new(ship_data, "$Expl inner rad", json_real(sip->shockwave.inner_rad));
|
||||
json_object_set_new(ship_data, "$Expl outer rad", json_real(sip->shockwave.outer_rad));
|
||||
json_object_set_new(ship_data, "$Expl damage", json_real(sip->shockwave.damage));
|
||||
json_object_set_new(ship_data, "$Expl blast", json_real(sip->shockwave.blast));
|
||||
json_object_set_new(ship_data, "$Expl Propogates", json_boolean(sip->explosion_propagates));
|
||||
json_object_set_new(ship_data, "$Propagating Expl Radius Multiplier", json_real(sip->prop_exp_rad_mult));
|
||||
json_object_set_new(ship_data, "$Expl Visual Rad", json_real(sip->big_exp_visual_rad));
|
||||
json_object_set_new(ship_data, "$Base Death-Roll Time", json_integer(sip->death_roll_base_time));
|
||||
json_object_set_new(ship_data, "$Death-Roll Explosion Radius Mult", json_real(sip->death_roll_r_mult));
|
||||
json_object_set_new(ship_data, "$Death-Roll Explosion Intensity Mult", json_real(sip->death_roll_time_mult));
|
||||
json_object_set_new(ship_data, "$Death FX Explosion Radius Mult", json_real(sip->death_fx_r_mult));
|
||||
json_object_set_new(ship_data, "$Death FX Explosion Count", json_integer(sip->death_fx_count));
|
||||
// Skipping more particle stuff for now
|
||||
json_object_set_new(ship_data, "$Vaporize Percent Chance", json_real(sip->vaporize_chance));
|
||||
if(sip->shockwave.damage_type_idx > -1 && sip->shockwave.damage_type_idx < Damage_types.size())
|
||||
{
|
||||
json_object_set_new(ship_data, "$Shockwave Damage Type", json_string(Damage_types.at(sip->shockwave.damage_type_idx).name));
|
||||
}
|
||||
else
|
||||
{
|
||||
json_object_set_new(ship_data, "$Shockwave Damage Type", json_null());
|
||||
}
|
||||
json_object_set_new(ship_data, "$Shockwave Speed", json_real(sip->shockwave.speed));
|
||||
json_object_set_new(ship_data, "$Shockwave Count", json_real(sip->shockwave_count));
|
||||
json_object_set_new(ship_data, "$Shockwave model", json_string(sip->shockwave.pof_name));
|
||||
json_object_set_new(ship_data, "$Shockwave name", json_string(sip->shockwave.name));
|
||||
for(SCP_vector<int>::iterator anim = sip->explosion_bitmap_anims.begin(); anim != sip->explosion_bitmap_anims.end(); ++anim)
|
||||
{
|
||||
json_array_append_new(Anims, json_integer(*anim));
|
||||
}
|
||||
json_object_set_new(ship_data, "$Explosion Animations", Anims);
|
||||
json_object_set_new(ship_data, "$Weapon Model Draw Distance", json_real(sip->weapon_model_draw_distance));
|
||||
append_weapons(sip, ship_data, true, 0);
|
||||
append_weapons(sip, ship_data, false, MAX_SHIP_PRIMARY_BANKS);
|
||||
json_object_set_new(ship_data, "$Shields", json_real(sip->max_shield_strength));
|
||||
json_object_set_new(ship_data, "+Auto Spread", json_real(sip->auto_shield_spread));
|
||||
json_object_set_new(ship_data, "+Allow Bypass", json_boolean(sip->auto_shield_spread_bypass));
|
||||
json_object_set_new(ship_data, "+Spread From LOD", json_integer(sip->auto_shield_spread_from_lod));
|
||||
for(j = 0; j < sizeof(sip->shield_point_augment_ctrls) / sizeof(int); j++)
|
||||
{
|
||||
if(sip->shield_point_augment_ctrls[j] != -1)
|
||||
{
|
||||
insert_index = 0;
|
||||
json_array_foreach(Model_point_shield_controls, shield_point, quadrant)
|
||||
{
|
||||
insert_index = shield_point;
|
||||
if(sip->shield_point_augment_ctrls[j] < shield_point)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
switch(j)
|
||||
{
|
||||
case 0:
|
||||
json_array_insert_new(Model_point_shield_controls, insert_index, json_string("right"));
|
||||
break;
|
||||
case 1:
|
||||
json_array_insert_new(Model_point_shield_controls, insert_index, json_string("front"));
|
||||
break;
|
||||
case 2:
|
||||
json_array_insert_new(Model_point_shield_controls, insert_index, json_string("rear"));
|
||||
break;
|
||||
case 3:
|
||||
json_array_insert_new(Model_point_shield_controls, insert_index, json_string("left"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
json_object_set_new(ship_data, "$Model Point Shield Controls", Model_point_shield_controls);
|
||||
json_object_set_new(Shield_color, "red", json_integer(sip->shield_color[0]));
|
||||
json_object_set_new(Shield_color, "green", json_integer(sip->shield_color[1]));
|
||||
json_object_set_new(Shield_color, "blue", json_integer(sip->shield_color[2]));
|
||||
json_object_set_new(ship_data, "$Shield Color", Shield_color);
|
||||
json_object_set_new(ship_data, "$Power Output", json_real(sip->power_output));
|
||||
json_object_set_new(ship_data, "$Shield Regeneration Rate", json_real(sip->max_shield_regen_per_second));
|
||||
json_object_set_new(ship_data, "$Support Shield Repair Rate", json_real(sip->sup_shield_repair_rate * 100));
|
||||
json_object_set_new(ship_data, "$Weapon Regeneration Rate", json_real(sip->max_weapon_regen_per_second));
|
||||
json_object_set_new(ship_data, "$Max Oclk Speed", json_real(sip->max_overclocked_speed));
|
||||
json_object_set_new(ship_data, "$Max Weapon Eng", json_real(sip->max_weapon_reserve));
|
||||
json_object_set_new(ship_data, "$Hitpoints", json_real(sip->max_hull_strength));
|
||||
json_object_set_new(ship_data, "$Hull Repair Rate", json_real(sip->hull_repair_rate * 100));
|
||||
json_object_set_new(ship_data, "$Support Hull Repair Rate", json_real(sip->sup_hull_repair_rate * 100));
|
||||
json_object_set_new(ship_data, "$Subsystem Repair Rate", json_real(sip->subsys_repair_rate * 100));
|
||||
json_object_set_new(ship_data, "$Support Subsystem Repair Rate", json_real(sip->sup_subsys_repair_rate * 100));
|
||||
json_object_set_new(ship_data, "$Armor Type", ( (sip->armor_type_idx > -1) ? json_string(Armor_types[sip->armor_type_idx].GetNamePtr()) : json_null() ));
|
||||
json_object_set_new(ship_data, "$Shield Armor Type", ( (sip->shield_armor_type_idx > -1) ? json_string(Armor_types[sip->shield_armor_type_idx].GetNamePtr()) : json_null() ));
|
||||
// Skipping flags
|
||||
|
||||
json_array_append_new(Ships, ship_data);
|
||||
}
|
||||
|
||||
json_object_set_new(ships_obj, "Ships", Ships);
|
||||
|
||||
cf_create_default_path_string(full_name, sizeof(full_name) - 1, CF_TYPE_ROOT, outfile);
|
||||
json_dump_file(ships_obj, full_name, JSON_ESCAPE_SLASH | JSON_INDENT(4) | JSON_PRESERVE_ORDER | JSON_REAL_PRECISION(4));
|
||||
}
|
||||
+20
-6
@@ -424,7 +424,7 @@ typedef struct ship_flag_name {
|
||||
int flag_list; // is this flag in the 1st or 2nd ship flags list?
|
||||
} ship_flag_name;
|
||||
|
||||
#define MAX_SHIP_FLAG_NAMES 17
|
||||
#define MAX_SHIP_FLAG_NAMES 18
|
||||
extern ship_flag_name Ship_flag_names[];
|
||||
|
||||
// states for the flags variable within the ship structure
|
||||
@@ -505,6 +505,7 @@ extern ship_flag_name Ship_flag_names[];
|
||||
#define SF2_WEAPONS_LOCKED (1<<25) // Karajorma - Prevents the player from changing the weapons on the ship on the loadout screen
|
||||
#define SF2_SHIP_SELECTIVE_LINKING (1<<26) // RSAXVC - Allow pilot to pick firing configuration
|
||||
#define SF2_SCRAMBLE_MESSAGES (1<<27) // Goober5000 - all messages sent from this ship appear scrambled
|
||||
#define SF2_NO_SECONDARY_LOCKON (1<<28) // zookeeper - secondary lock-on disabled
|
||||
|
||||
// If any of these bits in the ship->flags are set, ignore this ship when targeting
|
||||
extern int TARGET_SHIP_IGNORE_FLAGS;
|
||||
@@ -592,6 +593,8 @@ public:
|
||||
float ship_max_shield_strength;
|
||||
float ship_max_hull_strength;
|
||||
|
||||
float max_shield_recharge;
|
||||
|
||||
int ship_guardian_threshold; // Goober5000 - now also determines whether ship is guardian'd
|
||||
|
||||
|
||||
@@ -928,6 +931,7 @@ extern int ship_find_exited_ship_by_signature( int signature);
|
||||
#define SIF2_AUTO_SPREAD_SHIELDS (1 << 16) // zookeeper - auto spread shields
|
||||
#define SIF2_DRAW_WEAPON_MODELS (1 << 17) // the ship draws weapon models of any sort (used to be a boolean)
|
||||
#define SIF2_MODEL_POINT_SHIELDS (1 << 18) // zookeeper - uses model-defined shield points instead of quadrants
|
||||
#define SIF2_LOCK_DETAIL_BOXES (1 << 19) // zookeeper - don't scale detail boxes or spheres based on detail settings
|
||||
|
||||
#define SIF_DEFAULT_VALUE 0
|
||||
#define SIF2_DEFAULT_VALUE 0
|
||||
@@ -1144,6 +1148,8 @@ typedef struct ship_collision_physics {
|
||||
|
||||
typedef struct path_metadata {
|
||||
vec3d departure_rvec;
|
||||
float arrive_speed_mult;
|
||||
float depart_speed_mult;
|
||||
} path_metadata;
|
||||
|
||||
// The real FreeSpace ship_info struct.
|
||||
@@ -1175,6 +1181,7 @@ public:
|
||||
char pof_file_hud[MAX_FILENAME_LEN]; // POF file to load for the HUD target box
|
||||
int num_detail_levels; // number of detail levels for this ship
|
||||
int detail_distance[MAX_SHIP_DETAIL_LEVELS]; // distance to change detail levels at
|
||||
int collision_lod; // check for collisions using a LOD
|
||||
int cockpit_model_num; // cockpit model
|
||||
int model_num; // ship model
|
||||
int model_num_hud; // model to use when rendering to the HUD (eg, mini supercap)
|
||||
@@ -1295,12 +1302,15 @@ public:
|
||||
|
||||
float max_hull_strength; // Max hull strength of this class of ship.
|
||||
float max_shield_strength;
|
||||
float auto_shield_spread;
|
||||
bool auto_shield_spread_bypass;
|
||||
int auto_shield_spread_from_lod;
|
||||
float auto_shield_spread; // Thickness of the shield
|
||||
bool auto_shield_spread_bypass; // Whether weapons fired up close can bypass shields
|
||||
int auto_shield_spread_from_lod; // Which LOD to project the shield from
|
||||
float auto_shield_spread_min_span; // Minimum distance weapons must travel until allowed to collide with the shield
|
||||
|
||||
int shield_point_augment_ctrls[4]; // Re-mapping of shield augmentation controls for model point shields
|
||||
|
||||
float max_shield_recharge;
|
||||
|
||||
float hull_repair_rate; //How much of the hull is repaired every second
|
||||
float subsys_repair_rate; //How fast
|
||||
|
||||
@@ -1320,6 +1330,7 @@ public:
|
||||
|
||||
ubyte shield_icon_index; // index to locate ship-specific animation frames for the shield on HUD
|
||||
char icon_filename[MAX_FILENAME_LEN]; // filename for icon that is displayed in ship selection
|
||||
angles model_icon_angles; // angle from which the model icon should be rendered (if not 0,0,0)
|
||||
char anim_filename[MAX_FILENAME_LEN]; // filename for animation that plays in ship selection
|
||||
char overhead_filename[MAX_FILENAME_LEN]; // filename for animation that plays weapons loadout
|
||||
int selection_effect;
|
||||
@@ -1372,6 +1383,7 @@ public:
|
||||
float thruster02_glow_len_factor;
|
||||
float thruster_dist_rad_factor;
|
||||
float thruster_dist_len_factor;
|
||||
float thruster_glow_noise_mult;
|
||||
|
||||
bool draw_distortion;
|
||||
|
||||
@@ -1398,6 +1410,7 @@ public:
|
||||
vec3d topdown_offset;
|
||||
|
||||
int engine_snd; // handle to engine sound for ship (-1 if no engine sound)
|
||||
float min_engine_vol; // minimum volume modifier for engine sound when ship is stationary
|
||||
int glide_start_snd; // handle to sound to play at the beginning of a glide maneuver (default is 0 for regular throttle down sound)
|
||||
int glide_end_snd; // handle to sound to play at the end of a glide maneuver (default is 0 for regular throttle up sound)
|
||||
|
||||
@@ -1417,10 +1430,12 @@ public:
|
||||
float minimum_convergence_distance;
|
||||
float convergence_distance;
|
||||
vec3d convergence_offset;
|
||||
int autoaim_lock_snd, autoaim_lost_snd;
|
||||
|
||||
float emp_resistance_mod;
|
||||
|
||||
float piercing_damage_draw_limit;
|
||||
int shield_impact_explosion_anim;
|
||||
|
||||
int damage_lightning_type;
|
||||
|
||||
@@ -1591,6 +1606,7 @@ extern void ship_cleanup(int shipnum, int cleanup_mode);
|
||||
extern void ship_destroy_instantly(object *ship_obj, int shipnum);
|
||||
extern void ship_actually_depart(int shipnum, int method = SHIP_DEPARTED_WARP);
|
||||
|
||||
extern bool in_autoaim_fov(ship *shipp, int bank_to_fire, object *obj);
|
||||
extern int ship_fire_primary_debug(object *objp); // Fire the debug laser.
|
||||
extern int ship_stop_fire_primary(object * obj);
|
||||
extern int ship_fire_primary(object * objp, int stream_weapons, int force = 0);
|
||||
@@ -2006,6 +2022,4 @@ int get_default_player_ship_index();
|
||||
*/
|
||||
int get_nearest_bbox_point(object *ship_obj, vec3d *start, vec3d *box_pt);
|
||||
|
||||
extern void ship_output_json(const char *outfile);
|
||||
|
||||
#endif
|
||||
@@ -45,6 +45,10 @@ ubyte *Compressed_service_buffer = NULL; // Used to read in compressed data duri
|
||||
|
||||
#define AS_HIGHEST_MAX 999999999 // max uncompressed filesize supported is 999 meg
|
||||
|
||||
// Globalize the list of audio extensions for use in several sound related files
|
||||
const char *audio_ext_list[] = { ".ogg", ".wav" };
|
||||
const int NUM_AUDIO_EXT = sizeof(audio_ext_list) / sizeof(char*);
|
||||
|
||||
|
||||
int Audiostream_inited = 0;
|
||||
|
||||
@@ -436,8 +440,6 @@ bool WaveFile::Open(char *pszFilename, bool keep_ext)
|
||||
int FileSize, FileOffset;
|
||||
char fullpath[MAX_PATH];
|
||||
char filename[MAX_FILENAME_LEN];
|
||||
const int NUM_EXT = 2;
|
||||
const char *audio_ext[NUM_EXT] = { ".ogg", ".wav" };
|
||||
|
||||
m_total_uncompressed_bytes_read = 0;
|
||||
m_max_uncompressed_bytes_to_read = AS_HIGHEST_MAX;
|
||||
@@ -448,8 +450,8 @@ bool WaveFile::Open(char *pszFilename, bool keep_ext)
|
||||
|
||||
// if we are supposed to load the file as passed...
|
||||
if (keep_ext) {
|
||||
for (int i = 0; i < NUM_EXT; i++) {
|
||||
if ( stristr(pszFilename, audio_ext[i]) ) {
|
||||
for (int i = 0; i < NUM_AUDIO_EXT; i++) {
|
||||
if ( stristr(pszFilename, audio_ext_list[i]) ) {
|
||||
rc = i;
|
||||
break;
|
||||
}
|
||||
@@ -463,14 +465,14 @@ bool WaveFile::Open(char *pszFilename, bool keep_ext)
|
||||
}
|
||||
// ... otherwise we just find the best match
|
||||
else {
|
||||
rc = cf_find_file_location_ext(filename, NUM_EXT, audio_ext, CF_TYPE_ANY, sizeof(fullpath) - 1, fullpath, &FileSize, &FileOffset);
|
||||
rc = cf_find_file_location_ext(filename, NUM_AUDIO_EXT, audio_ext_list, CF_TYPE_ANY, sizeof(fullpath) - 1, fullpath, &FileSize, &FileOffset);
|
||||
}
|
||||
|
||||
if (rc < 0) {
|
||||
goto OPEN_ERROR;
|
||||
} else {
|
||||
// set proper filename for later use (assumes that it doesn't already have an extension)
|
||||
strcat_s( filename, audio_ext[rc] );
|
||||
strcat_s( filename, audio_ext_list[rc] );
|
||||
}
|
||||
|
||||
m_snd_info.cfp = mmioOpen( fullpath, NULL, MMIO_ALLOCBUF | MMIO_READ );
|
||||
|
||||
@@ -46,6 +46,9 @@ typedef struct {
|
||||
} STRHDL;
|
||||
#endif // NEED_STRHDL
|
||||
|
||||
extern const char *audio_ext_list[];
|
||||
extern const int NUM_AUDIO_EXT;
|
||||
|
||||
// Initializes the audio streaming library. Called
|
||||
// automatically when the sound stuff is inited.
|
||||
void audiostream_init();
|
||||
|
||||
+2
-3
@@ -18,6 +18,7 @@
|
||||
#include "sound/acm.h"
|
||||
#include "osapi/osapi.h"
|
||||
#include "sound/dscap.h"
|
||||
#include "sound/audiostr.h"
|
||||
|
||||
|
||||
typedef struct sound_buffer
|
||||
@@ -460,8 +461,6 @@ int ds_parse_sound_info(char *real_filename, sound_info *s_info)
|
||||
int rc, FileSize, FileOffset;
|
||||
char fullpath[MAX_PATH];
|
||||
char filename[MAX_FILENAME_LEN];
|
||||
const int NUM_EXT = 2;
|
||||
const char *audio_ext[NUM_EXT] = { ".ogg", ".wav" };
|
||||
int rval = -1;
|
||||
|
||||
if ( (real_filename == NULL) || (s_info == NULL) ) {
|
||||
@@ -473,7 +472,7 @@ int ds_parse_sound_info(char *real_filename, sound_info *s_info)
|
||||
char *p = strrchr(filename, '.');
|
||||
if ( p ) *p = 0;
|
||||
|
||||
rc = cf_find_file_location_ext(filename, NUM_EXT, audio_ext, CF_TYPE_ANY, sizeof(fullpath) - 1, fullpath, &FileSize, &FileOffset);
|
||||
rc = cf_find_file_location_ext(filename, NUM_AUDIO_EXT, audio_ext_list, CF_TYPE_ANY, sizeof(fullpath) - 1, fullpath, &FileSize, &FileOffset);
|
||||
|
||||
if (rc < 0) {
|
||||
return -1;
|
||||
|
||||
+188
-153
@@ -1,153 +1,188 @@
|
||||
<GRAMMAR LANGID="409">
|
||||
<DEFINE>
|
||||
<ID NAME="VID_Counter" VAL="80"/>
|
||||
|
||||
<ID NAME="VID_DestoryTarget" VAL="10"/>
|
||||
<ID NAME="VID_DisableTarget" VAL="11"/>
|
||||
<ID NAME="VID_DisarmTarget" VAL="12"/>
|
||||
|
||||
<ID NAME="VID_DestroySubsys" VAL="13"/>
|
||||
|
||||
<ID NAME="VID_ProtectTarget" VAL="14"/>
|
||||
<ID NAME="VID_IgnoreTarget" VAL="15"/>
|
||||
<ID NAME="VID_FormWing" VAL="16"/>
|
||||
<ID NAME="VID_CoverMe" VAL="17"/>
|
||||
<ID NAME="VID_EngageEnemy" VAL="18"/>
|
||||
<ID NAME="VID_Depart" VAL="19"/>
|
||||
|
||||
<ID NAME="VID_Action" VAL="250"/>
|
||||
|
||||
<ID NAME="VID_WingName" VAL="251"/>
|
||||
<ID NAME="VID_TopMenu" VAL="252"/>
|
||||
<ID NAME="VID_ShipName" VAL="253"/>
|
||||
<ID NAME="VID_Number" VAL="254"/>
|
||||
|
||||
<ID NAME="VID_Ships" VAL="50"/>
|
||||
<ID NAME="VID_Wings" VAL="51"/>
|
||||
<ID NAME="VID_AllFighters" VAL="52"/>
|
||||
<ID NAME="VID_AllWings" VAL="53"/>
|
||||
|
||||
<ID NAME="VID_Reinforcements" VAL="54"/>
|
||||
|
||||
<ID NAME="VID_SupportShip" VAL="55"/>
|
||||
<ID NAME="VID_AbortSupport" VAL="56"/>
|
||||
|
||||
<ID NAME="VID_Cancel" VAL="57"/>
|
||||
<ID NAME="VID_Command" VAL="58"/>
|
||||
<ID NAME="VID_More" VAL="59"/>
|
||||
|
||||
|
||||
</DEFINE>
|
||||
|
||||
|
||||
<RULE ID="VID_WingName" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_WingName">
|
||||
<P VAL="0">Alpha</P>
|
||||
<P VAL="1">Beta</P>
|
||||
<P VAL="2">Gamma</P>
|
||||
<P VAL="3">Delta</P>
|
||||
<P VAL="4">Epsilon</P>
|
||||
<P VAL="5">Zeta</P>
|
||||
<P VAL="6">Eta</P>
|
||||
<P VAL="7">Theta</P>
|
||||
<P VAL="8">Iota</P>
|
||||
<P VAL="9">Kappa</P>
|
||||
<P VAL="10">Lambda</P>
|
||||
<P VAL="11">Mu</P>
|
||||
<P VAL="12">Nu</P>
|
||||
<P VAL="13">Xi</P>
|
||||
<P VAL="14">Omicron</P>
|
||||
<P VAL="15">Pi</P>
|
||||
<P VAL="16">Rho</P>
|
||||
<P VAL="17">Sigma</P>
|
||||
<P VAL="18">Tau</P>
|
||||
<P VAL="19">Upsilon</P>
|
||||
<P VAL="20">Phi</P>
|
||||
<P VAL="21">Chi</P>
|
||||
<P VAL="22">Psi</P>
|
||||
<P VAL="23">Omega</P>
|
||||
</L>
|
||||
<O>wing</O>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_ShipName" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_ShipName">
|
||||
<P VAL="0">Alpha</P>
|
||||
<P VAL="1">Beta</P>
|
||||
<P VAL="2">Gamma</P>
|
||||
<P VAL="3">Delta</P>
|
||||
<P VAL="4">Epsilon</P>
|
||||
<P VAL="5">Zeta</P>
|
||||
<P VAL="6">Eta</P>
|
||||
<P VAL="7">Theta</P>
|
||||
<P VAL="8">Iota</P>
|
||||
<P VAL="9">Kappa</P>
|
||||
<P VAL="10">Lambda</P>
|
||||
<P VAL="11">Mu</P>
|
||||
<P VAL="12">Nu</P>
|
||||
<P VAL="13">Xi</P>
|
||||
<P VAL="14">Omicron</P>
|
||||
<P VAL="15">Pi</P>
|
||||
<P VAL="16">Rho</P>
|
||||
<P VAL="17">Sigma</P>
|
||||
<P VAL="18">Tau</P>
|
||||
<P VAL="19">Upsilon</P>
|
||||
<P VAL="20">Phi</P>
|
||||
<P VAL="21">Chi</P>
|
||||
<P VAL="22">Psi</P>
|
||||
<P VAL="23">Omega</P>
|
||||
</L>
|
||||
<L PROPID="VID_Number">
|
||||
<P VAL = "1">one</P>
|
||||
<P VAL = "2">two</P>
|
||||
<P VAL = "3">three</P>
|
||||
<P VAL = "4">four</P>
|
||||
<P VAL = "5">five</P>
|
||||
<P VAL = "6">six</P>
|
||||
<P VAL = "7">seven</P>
|
||||
<P VAL = "8">eight</P>
|
||||
<P VAL = "9">nine</P>
|
||||
</L>
|
||||
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_TopMenu" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_TopMenu">
|
||||
<P VAL="VID_Ships" >Ships</P>
|
||||
<P VAL="VID_Wings" >Wings</P>
|
||||
<P VAL="VID_AllFighters">All Fighters</P>
|
||||
<P VAL="VID_AllWings" >All Wings</P>
|
||||
|
||||
<P VAL="VID_Reinforcements">Reinforcements</P>
|
||||
|
||||
<P VAL="VID_SupportShip">Support ship</P>
|
||||
<P VAL="VID_SupportShip">Rearm</P>
|
||||
<P VAL="VID_SupportShip">Repair</P>
|
||||
<P VAL="VID_AbortSupport">Abort</P>
|
||||
|
||||
<P VAL="VID_Cancel">Cancel</P>
|
||||
<P VAL="VID_Command">Command</P>
|
||||
<P VAL="VID_More">More</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_Action" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_Action">
|
||||
|
||||
<P VAL="VID_DestoryTarget">Destroy my target</P>
|
||||
<P VAL="VID_DisableTarget">Disable my target</P>
|
||||
<P VAL="VID_DisarmTarget" >Disarm my target</P>
|
||||
|
||||
<P VAL="VID_DestroySubsys">Destroy subsystem</P>
|
||||
|
||||
<P VAL="VID_ProtectTarget">Protect my target</P>
|
||||
<P VAL="VID_IgnoreTarget" >Ignore my target</P>
|
||||
<P VAL="VID_FormWing" >Form on my wing</P>
|
||||
<P VAL="VID_CoverMe" >Cover me</P>
|
||||
<P VAL="VID_EngageEnemy" >Engage Enemy</P>
|
||||
<P VAL="VID_EngageEnemy" >Attack</P>
|
||||
<P VAL="VID_Depart" >Depart</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
</GRAMMAR>
|
||||
<GRAMMAR>
|
||||
<DEFINE>
|
||||
<ID NAME="VID_Counter" VAL="80"/>
|
||||
<ID NAME="VID_DestroyTarget" VAL="10"/>
|
||||
<ID NAME="VID_DisableTarget" VAL="11"/>
|
||||
<ID NAME="VID_DisarmTarget" VAL="12"/>
|
||||
<ID NAME="VID_DestroySubsys" VAL="13"/>
|
||||
<ID NAME="VID_ProtectTarget" VAL="14"/>
|
||||
<ID NAME="VID_IgnoreTarget" VAL="15"/>
|
||||
<ID NAME="VID_FormWing" VAL="16"/>
|
||||
<ID NAME="VID_CoverMe" VAL="17"/>
|
||||
<ID NAME="VID_EngageEnemy" VAL="18"/>
|
||||
<ID NAME="VID_Depart" VAL="19"/>
|
||||
<ID NAME="VID_Action" VAL="250"/>
|
||||
<ID NAME="VID_WingName" VAL="251"/>
|
||||
<ID NAME="VID_TopMenu" VAL="252"/>
|
||||
<ID NAME="VID_ShipName" VAL="253"/>
|
||||
<ID NAME="VID_Number" VAL="254"/>
|
||||
<ID NAME="VID_Ships" VAL="50"/>
|
||||
<ID NAME="VID_Wings" VAL="51"/>
|
||||
<ID NAME="VID_AllFighters" VAL="52"/>
|
||||
<ID NAME="VID_AllWings" VAL="53"/>
|
||||
<ID NAME="VID_Reinforcements" VAL="54"/>
|
||||
<ID NAME="VID_SupportShip" VAL="55"/>
|
||||
<ID NAME="VID_AbortSupport" VAL="56"/>
|
||||
<ID NAME="VID_Cancel" VAL="57"/>
|
||||
<ID NAME="VID_Command" VAL="58"/>
|
||||
<ID NAME="VID_More" VAL="59"/>
|
||||
<ID NAME="VID_shields" VAL="100"/>
|
||||
<ID NAME="VID_targeting" VAL="101"/>
|
||||
<ID NAME="VID_power" VAL="102"/>
|
||||
<ID NAME="VID_speed" VAL="103"/>
|
||||
<ID name="VID_other" VAL="104"/>
|
||||
</DEFINE>
|
||||
|
||||
<RULE ID="VID_WingName" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_WingName">
|
||||
<P VAL="0">Alpha</P>
|
||||
<P VAL="1">Beta</P>
|
||||
<P VAL="2">Gamma</P>
|
||||
<P VAL="3">Delta</P>
|
||||
<P VAL="4">Epsilon</P>
|
||||
<P VAL="5">Zeta</P>
|
||||
<P VAL="6">Eta</P>
|
||||
<P VAL="7">Theta</P>
|
||||
<P VAL="8">Iota</P>
|
||||
<P VAL="9">Kappa</P>
|
||||
<P VAL="10">Lambda</P>
|
||||
<P VAL="11">Mu</P>
|
||||
<P VAL="12">Nu</P>
|
||||
<P VAL="13">Xi</P>
|
||||
<P VAL="14">Omicron</P>
|
||||
<P VAL="15">Pi</P>
|
||||
<P VAL="16">Rho</P>
|
||||
<P VAL="17">Sigma</P>
|
||||
<P VAL="18">Tau</P>
|
||||
<P VAL="19">Upsilon</P>
|
||||
<P VAL="20">Phi</P>
|
||||
<P VAL="21">Chi</P>
|
||||
<P VAL="22">Psi</P>
|
||||
<P VAL="23">Omega</P>
|
||||
</L>
|
||||
<L PROPID="VID_ShipName">
|
||||
<P VAl="0">Wing</P>
|
||||
<P VAL="1">one</P>
|
||||
<P VAL="2">two</P>
|
||||
<P VAL="3">three</P>
|
||||
<P VAL="4">four</P>
|
||||
<P VAL="5">five</P>
|
||||
<P VAL="6">six</P>
|
||||
<P VAL="7">seven</P>
|
||||
<P VAL="8">eight</P>
|
||||
<P VAL="9">nine</P>
|
||||
</L>
|
||||
<O>
|
||||
<RULEREF refID="VID_Action"/>
|
||||
</O>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_Action" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_Action">
|
||||
<P VAL="VID_DestroyTarget">Destroy my target</P>
|
||||
<P VAL="VID_DisableTarget">Disable my target</P>
|
||||
<P VAL="VID_DisarmTarget">Disarm my target</P>
|
||||
<P VAL="VID_DestroySubsys">Destroy subsystem</P>
|
||||
<P VAL="VID_ProtectTarget">Protect my target</P>
|
||||
<P VAL="VID_IgnoreTarget">Ignore my target</P>
|
||||
<P VAL="VID_FormWing">Form on my wing</P>
|
||||
<P VAL="VID_CoverMe">Cover me</P>
|
||||
<P VAL="VID_EngageEnemy">Engage Enemy</P>
|
||||
<P VAL="VID_EngageEnemy">Attack</P>
|
||||
<P VAL="VID_Depart">Depart</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_TopMenu" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_TopMenu">
|
||||
<P VAL="VID_Ships">Ships</P>
|
||||
<P VAL="VID_Wings">Wings</P>
|
||||
<P VAL="VID_AllFighters">All Fighters<O><RULEREF REFID="VID_Action"/></O></P>
|
||||
<P VAL="VID_AllWings">All Wings<O><RULEREF REFID="VID_Action"/></O></P>
|
||||
<P VAL="VID_Reinforcements">Reinforcements</P>
|
||||
<P VAL="VID_SupportShip">Support ship</P>
|
||||
<P VAL="VID_SupportShip">Rearm</P>
|
||||
<P VAL="VID_SupportShip">Repair</P>
|
||||
<P VAL="VID_AbortSupport">Abort</P>
|
||||
<P VAL="VID_Cancel">Cancel</P>
|
||||
<P VAL="VID_Command">Command</P>
|
||||
<P VAL="VID_More">More</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_shields" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_shields">
|
||||
<P VAL="0">Shields forward</P>
|
||||
<P VAL="1">Shields left</P>
|
||||
<P VAL="2">Shields right</P>
|
||||
<P VAL="3">Shields back</P>
|
||||
<P VAL="4">Shields all</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_targeting" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_targeting">
|
||||
<P VAL="0">Target next</P>
|
||||
<P VAL="1">Target previous</P>
|
||||
<P VAL="2">Target hostile</P>
|
||||
<P VAL="3">Target previous hostile</P>
|
||||
<P VAL="4">Auto target</P>
|
||||
<P VAL="5">Target Friendly</P>
|
||||
<P VAL="6">Target previous friendly</P>
|
||||
<P VAL="7">Target sight</P>
|
||||
<P VAL="8">Targets attacker</P>
|
||||
<P VAL="9">Target sender</P>
|
||||
<P VAL="10">Stop targeting</P>
|
||||
<P VAL="11">Target sight subsystem</P>
|
||||
<P VAL="12">Target next subsystem</P>
|
||||
<P VAL="13">Target previous subsystem</P>
|
||||
<P VAL="14">Stop targeting subsystems</P>
|
||||
<P val="50">Target closest attacker</P>
|
||||
<P VAL="88">Target next escort</P>
|
||||
<P VAL="89">Target closest repair ship</P>
|
||||
<P VAL="90">Target next uninspected</P>
|
||||
<P VAL="91">Target previous uninspected</P>
|
||||
<P VAL="92">Target newest</P>
|
||||
<P VAL="93">Target next turret</P>
|
||||
<P VAL="94">Target previous turrent</P>
|
||||
<P VAL="95">Target next bomb</P>
|
||||
<P VAL="96">Target previous bomb</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_speed" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_speed">
|
||||
<P VAL="15">Match speed</P>
|
||||
<P VAL="16">Auto match</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_other" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_other">
|
||||
<P VAL="19">Next primary</P>
|
||||
<P VAL="20">Previous primary</P>
|
||||
<P VAL="21">cycle secondary</P>
|
||||
<P VAL="22">secondary rate</P>
|
||||
<P VAL="63">Radar Range</P>
|
||||
<P VAL="117">Glide toggle</P>
|
||||
</L>
|
||||
</RULE>
|
||||
|
||||
<RULE ID="VID_power" TOPLEVEL="ACTIVE">
|
||||
<L PROPID="VID_power">
|
||||
<P VAL="69">Increase weapon</P>
|
||||
<P VAL="70">Decrease weapon</P>
|
||||
<P VAL="71">Increase shield</P>
|
||||
<P VAL="72">Decrease shield</P>
|
||||
<P VAL="73">Increase engine</P>
|
||||
<P VAL="74">Decrease engine</P>
|
||||
<P VAL="75">Power balance</P>
|
||||
<P VAL="201">Max weapons</P>
|
||||
<P VAL="202">Min weapons</P>
|
||||
<P VAL="203">Max shields</P>
|
||||
<P VAL="204">Min shields</P>
|
||||
<P VAL="205">Max engines</P>
|
||||
<P VAL="206">Min engines</P>
|
||||
</L>
|
||||
</RULE>
|
||||
</GRAMMAR>
|
||||
+15
-8
@@ -12,6 +12,7 @@
|
||||
#include "render/3d.h"
|
||||
#include "sound/sound.h"
|
||||
#include "sound/audiostr.h"
|
||||
#include "gamesnd/eventmusic.h"
|
||||
#include "cmdline/cmdline.h"
|
||||
#include "osapi/osapi.h"
|
||||
#include "globalincs/vmallocator.h"
|
||||
@@ -49,10 +50,12 @@ typedef struct sound {
|
||||
|
||||
SCP_vector<sound> Sounds;
|
||||
|
||||
int Sound_enabled = FALSE; // global flag to turn sound on/off
|
||||
int Snd_sram; // mem (in bytes) used up by storing sounds in system memory
|
||||
float Master_sound_volume = 1.0f; // range is 0 -> 1, used for non-music sound fx
|
||||
float Master_voice_volume = 0.7f; // range is 0 -> 1, used for all voice playback
|
||||
int Sound_enabled = FALSE; // global flag to turn sound on/off
|
||||
int Snd_sram; // mem (in bytes) used up by storing sounds in system memory
|
||||
float Default_sound_volume = 1.0f; // range is 0 -> 1, used for non-music sound fx
|
||||
float Default_voice_volume = 0.7f; // range is 0 -> 1, used for all voice playback
|
||||
float Master_sound_volume = Default_sound_volume;
|
||||
float Master_voice_volume = Default_voice_volume;
|
||||
|
||||
unsigned int SND_ENV_DEFAULT = 0;
|
||||
|
||||
@@ -284,8 +287,6 @@ int snd_load( game_snd *gs, int allow_hardware_load )
|
||||
int rc, FileSize, FileOffset;
|
||||
char fullpath[MAX_PATH];
|
||||
char filename[MAX_FILENAME_LEN];
|
||||
const int NUM_EXT = 2;
|
||||
const char *audio_ext[NUM_EXT] = { ".ogg", ".wav" };
|
||||
size_t n;
|
||||
|
||||
|
||||
@@ -330,7 +331,7 @@ int snd_load( game_snd *gs, int allow_hardware_load )
|
||||
char *p = strrchr(filename, '.');
|
||||
if ( p ) *p = 0;
|
||||
|
||||
rc = cf_find_file_location_ext(filename, NUM_EXT, audio_ext, CF_TYPE_ANY, sizeof(fullpath) - 1, fullpath, &FileSize, &FileOffset);
|
||||
rc = cf_find_file_location_ext(filename, NUM_AUDIO_EXT, audio_ext_list, CF_TYPE_ANY, sizeof(fullpath) - 1, fullpath, &FileSize, &FileOffset);
|
||||
|
||||
if (rc < 0)
|
||||
return -1;
|
||||
@@ -339,7 +340,7 @@ int snd_load( game_snd *gs, int allow_hardware_load )
|
||||
CFILE *fp = cfopen_special(fullpath, "rb", FileSize, FileOffset);
|
||||
|
||||
// ok, we got it, so set the proper filename for logging purposes
|
||||
strcat_s(filename, audio_ext[rc]);
|
||||
strcat_s(filename, audio_ext_list[rc]);
|
||||
|
||||
nprintf(("Sound", "SOUND => Loading '%s'\n", filename));
|
||||
|
||||
@@ -1518,6 +1519,12 @@ void adjust_volume_on_frame(float* volume_now, aav* data)
|
||||
//apply change
|
||||
*volume_now = data->start_volume + (data->delta * done);
|
||||
CLAMP(*volume_now, 0.0f, 1.0f);
|
||||
|
||||
// if setting music volume, trigger volume change in playing tracks
|
||||
// done here in order to avoid setting music volume in every frame regardless if it changed or not
|
||||
if (&aav_music_volume == volume_now) {
|
||||
audiostream_set_volume_all(Master_event_music_volume * aav_music_volume, ASF_EVENTMUSIC);
|
||||
}
|
||||
}
|
||||
|
||||
void snd_aav_init()
|
||||
|
||||
@@ -62,6 +62,8 @@ typedef struct sound_env
|
||||
} sound_env;
|
||||
|
||||
extern int Sound_enabled;
|
||||
extern float Default_sound_volume; // 0 -> 1.0
|
||||
extern float Default_voice_volume; // 0 -> 1.0
|
||||
extern float Master_sound_volume; // 0 -> 1.0
|
||||
extern float Master_voice_volume; // 0 -> 1.0
|
||||
extern int Snd_sram; // System memory consumed by sound data
|
||||
|
||||
+223
-110
@@ -32,6 +32,7 @@
|
||||
#include "io/keycontrol.h"
|
||||
#include "playerman/player.h"
|
||||
#include "ship/ship.h"
|
||||
#include "cfile/cfile.h"
|
||||
|
||||
CComPtr<ISpRecoGrammar> p_grammarObject; // Pointer to our grammar object
|
||||
CComPtr<ISpRecoContext> p_recogContext; // Pointer to our recognition context
|
||||
@@ -39,16 +40,86 @@ CComPtr<ISpRecognizer> p_recogEngine; // Pointer to our recognition engine i
|
||||
|
||||
const bool DEBUG_ON = false;
|
||||
|
||||
extern int button_function(int n);
|
||||
extern void hud_squadmsg_msg_all_fighters();
|
||||
extern void hud_squadmsg_shortcut( int command );
|
||||
|
||||
//extern void hud_squadmsg_ship_command();
|
||||
extern int Msg_instance;;
|
||||
extern int Msg_shortcut_command;
|
||||
extern int Squad_msg_mode;
|
||||
|
||||
void doVid_Action(int action)
|
||||
{
|
||||
// If menu is up
|
||||
if(Player->flags & PLAYER_FLAGS_MSG_MODE)
|
||||
{
|
||||
switch(action)
|
||||
{
|
||||
case VID_DestroyTarget: Msg_shortcut_command = ATTACK_TARGET_ITEM; break;
|
||||
case VID_DisableTarget: Msg_shortcut_command = DISABLE_TARGET_ITEM; break;
|
||||
case VID_DisarmTarget: Msg_shortcut_command = DISARM_TARGET_ITEM; break;
|
||||
case VID_DestroySubsys: Msg_shortcut_command = DISABLE_SUBSYSTEM_ITEM; break;
|
||||
case VID_ProtectTarget: Msg_shortcut_command = PROTECT_TARGET_ITEM; break;
|
||||
case VID_IgnoreTarget: Msg_shortcut_command = IGNORE_TARGET_ITEM; break;
|
||||
case VID_FormWing: Msg_shortcut_command = FORMATION_ITEM; break;
|
||||
case VID_CoverMe: Msg_shortcut_command = COVER_ME_ITEM; break;
|
||||
case VID_EngageEnemy: Msg_shortcut_command = ENGAGE_ENEMY_ITEM; break;
|
||||
case VID_Depart: Msg_shortcut_command = DEPART_ITEM; break;
|
||||
default: Msg_shortcut_command = -1; break;
|
||||
|
||||
}
|
||||
|
||||
if(Msg_instance == MESSAGE_ALL_FIGHTERS || Squad_msg_mode == SM_MODE_ALL_FIGHTERS )
|
||||
{
|
||||
// nprintf(("warning", "VOICER hud_squadmsg_send_to_all_fighters\n"));
|
||||
hud_squadmsg_send_to_all_fighters(Msg_shortcut_command);
|
||||
}
|
||||
else if(Squad_msg_mode == SM_MODE_SHIP_COMMAND)
|
||||
{
|
||||
// nprintf(("warning", "VOICER msg ship %d\n", Msg_instance));
|
||||
hud_squadmsg_send_ship_command( Msg_instance, Msg_shortcut_command, 1 );
|
||||
}
|
||||
else if(Squad_msg_mode == SM_MODE_WING_COMMAND)
|
||||
{
|
||||
// nprintf(("warning", "VOICER msg wing %d\n", Msg_instance));
|
||||
hud_squadmsg_send_wing_command( Msg_instance, Msg_shortcut_command, 1 );
|
||||
}
|
||||
else if(Squad_msg_mode == SM_MODE_REINFORCEMENTS )
|
||||
{
|
||||
}
|
||||
|
||||
hud_squadmsg_toggle();
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(action)
|
||||
{
|
||||
case VID_DestroyTarget: button_function(ATTACK_MESSAGE); break;
|
||||
case VID_DisableTarget: button_function(DISABLE_MESSAGE); break;
|
||||
case VID_DisarmTarget: button_function(DISARM_MESSAGE); break;
|
||||
case VID_DestroySubsys: button_function(ATTACK_SUBSYSTEM_MESSAGE); break;
|
||||
case VID_ProtectTarget: button_function(PROTECT_MESSAGE); break;
|
||||
case VID_IgnoreTarget: button_function(IGNORE_MESSAGE); break;
|
||||
case VID_FormWing: button_function(FORM_MESSAGE); break;
|
||||
case VID_CoverMe: button_function(COVER_MESSAGE); break;
|
||||
case VID_EngageEnemy: button_function(ENGAGE_MESSAGE); break;
|
||||
case VID_Depart: button_function(WARP_MESSAGE); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool VOICEREC_init(HWND hWnd, int event_id, int grammar_id, int command_resource)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
CComPtr<ISpAudio> cpAudio;
|
||||
|
||||
while ( 1 )
|
||||
while (true)
|
||||
{
|
||||
// create a recognition engine
|
||||
hr = p_recogEngine.CoCreateInstance(CLSID_SpSharedRecognizer);
|
||||
if ( FAILED( hr ) )
|
||||
if (FAILED(hr))
|
||||
{
|
||||
MessageBox(hWnd,"Failed to create a recognition engine\n","Error",MB_OK);
|
||||
printf("Failed to create a recognition engine\n");
|
||||
@@ -57,7 +128,7 @@ bool VOICEREC_init(HWND hWnd, int event_id, int grammar_id, int command_resource
|
||||
|
||||
// create the command recognition context
|
||||
hr = p_recogEngine->CreateRecoContext( &p_recogContext );
|
||||
if ( FAILED( hr ) )
|
||||
if (FAILED(hr))
|
||||
{
|
||||
MessageBox(hWnd,"Failed to create the command recognition context\n","Error",MB_OK);
|
||||
printf("Failed to create the command recognition context\n");
|
||||
@@ -67,7 +138,7 @@ bool VOICEREC_init(HWND hWnd, int event_id, int grammar_id, int command_resource
|
||||
// Let SR know that window we want it to send event information to, and using
|
||||
// what message
|
||||
hr = p_recogContext->SetNotifyWindowMessage( hWnd, event_id, 0, 0 );
|
||||
if ( FAILED( hr ) )
|
||||
if (FAILED(hr))
|
||||
{
|
||||
MessageBox(hWnd,"Failed to SetNotifyWindowMessage\n","Error",MB_OK);
|
||||
break;
|
||||
@@ -76,33 +147,38 @@ bool VOICEREC_init(HWND hWnd, int event_id, int grammar_id, int command_resource
|
||||
// Tell SR what types of events interest us. Here we only care about command
|
||||
// recognition.
|
||||
hr = p_recogContext->SetInterest( SPFEI(SPEI_RECOGNITION), SPFEI(SPEI_RECOGNITION) );
|
||||
if ( FAILED( hr ) )
|
||||
if (FAILED(hr))
|
||||
{
|
||||
MessageBox(hWnd,"Failed to set events\n","Error",MB_OK);
|
||||
break;
|
||||
}
|
||||
|
||||
// Load our grammar, which is the compiled form of simple.xml bound into this executable as a
|
||||
// user defined ("SRGRAMMAR") resource type.
|
||||
// Create a grammar
|
||||
hr = p_recogContext->CreateGrammar(grammar_id, &p_grammarObject);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
MessageBox(hWnd,"Failed to load grammar\n","Error",MB_OK);
|
||||
MessageBox(hWnd,"Failed to create grammar\n","Error",MB_OK);
|
||||
break;
|
||||
}
|
||||
|
||||
hr = p_grammarObject->LoadCmdFromResource(NULL, MAKEINTRESOURCEW(command_resource),
|
||||
// Load our grammar from data\phrases.xml, or if that doesn't exist, from the compiled in
|
||||
// user defined ("SRGRAMMAR") resource type.
|
||||
hr = p_grammarObject->LoadCmdFromFile(L"data\\phrases.xml", SPLO_STATIC);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
hr = p_grammarObject->LoadCmdFromResource(NULL, MAKEINTRESOURCEW(command_resource),
|
||||
L"SRGRAMMAR", MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
|
||||
SPLO_DYNAMIC);
|
||||
if ( FAILED( hr ) )
|
||||
{
|
||||
MessageBox(hWnd,"Failed to load resource\n","Error",MB_OK);
|
||||
break;
|
||||
if (FAILED(hr))
|
||||
{
|
||||
MessageBox(hWnd,"Failed to load resource\n","Error",MB_OK);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Set rules to active, we are now listening for commands
|
||||
hr = p_grammarObject->SetRuleState(NULL, NULL, SPRS_ACTIVE );
|
||||
if ( FAILED( hr ) )
|
||||
if (FAILED(hr))
|
||||
{
|
||||
MessageBox(hWnd,"Failed to set listening for commands\n","Error",MB_OK);
|
||||
break;
|
||||
@@ -112,7 +188,7 @@ bool VOICEREC_init(HWND hWnd, int event_id, int grammar_id, int command_resource
|
||||
}
|
||||
|
||||
// if we failed and have a partially setup SAPI, close it all down
|
||||
if ( FAILED( hr ) )
|
||||
if (FAILED(hr))
|
||||
{
|
||||
VOICEREC_deinit();
|
||||
}
|
||||
@@ -195,14 +271,6 @@ char *wing_names[] =
|
||||
* Called to Execute commands that have been identified by the speech engine.
|
||||
*
|
||||
******************************************************************************/
|
||||
extern int button_function(int n);
|
||||
extern void hud_squadmsg_msg_all_fighters();
|
||||
extern void hud_squadmsg_shortcut( int command );
|
||||
|
||||
//extern void hud_squadmsg_ship_command();
|
||||
extern int Msg_instance;;
|
||||
extern int Msg_shortcut_command;
|
||||
extern int Squad_msg_mode;
|
||||
|
||||
char VOICEREC_lastCommand[30];
|
||||
|
||||
@@ -214,116 +282,103 @@ void VOICEREC_execute_command(ISpPhrase *pPhrase, HWND hWnd)
|
||||
// the grammar. Switch on it to figure out which command was recognized.
|
||||
if (SUCCEEDED(pPhrase->GetPhrase(&pElements)))
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
if(DEBUG_ON)
|
||||
{
|
||||
WCHAR *pwszText;
|
||||
char szText[255];
|
||||
int i;
|
||||
|
||||
pPhrase->GetText(SP_GETWHOLEPHRASE, SP_GETWHOLEPHRASE, TRUE, &pwszText, NULL);
|
||||
MessageBoxW(NULL,pwszText,NULL,MB_OK);
|
||||
|
||||
memset(szText, 0, 255);
|
||||
for (i=0;i<254;i++)
|
||||
{
|
||||
if (*(pwszText + i) == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
szText[i] = (char)(*(pwszText + i));
|
||||
szText[i+1] = 0;
|
||||
}
|
||||
|
||||
mprintf(( "recognized speech : %s \n", szText ));
|
||||
mprintf(( "speech Rule.ulId : %d \n", pElements->Rule.ulId ));
|
||||
//MessageBoxW(NULL,pwszText,NULL,MB_OK);
|
||||
}
|
||||
|
||||
#endif
|
||||
int part1, part2, part3;
|
||||
part1 = part2 = part3 = -1;
|
||||
switch ( pElements->Rule.ulId )
|
||||
{
|
||||
case VID_ShipName:
|
||||
{
|
||||
int wingType = pElements->pProperties->vValue.ulVal;
|
||||
int shipNum = pElements->pProperties->pNextSibling->vValue.ulVal;
|
||||
|
||||
char shipName[NAME_LENGTH];
|
||||
wing_bash_ship_name(shipName, wing_names[wingType], shipNum);
|
||||
|
||||
Msg_instance = ship_name_lookup(shipName);
|
||||
|
||||
// Can't issue commands to yourself or to nobody
|
||||
if(Msg_instance < 0 || Msg_instance == Player_obj->instance)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if(!(Player->flags & PLAYER_FLAGS_MSG_MODE))
|
||||
{
|
||||
hud_squadmsg_toggle();
|
||||
}
|
||||
|
||||
hud_squadmsg_do_mode(SM_MODE_SHIP_COMMAND);
|
||||
break;
|
||||
}
|
||||
case VID_WingName:
|
||||
{
|
||||
int wingType = pElements->pProperties->vValue.ulVal;
|
||||
|
||||
Msg_instance = wing_lookup(wing_names[wingType]);
|
||||
if (Msg_instance < 0)
|
||||
break;
|
||||
|
||||
if(!(Player->flags & PLAYER_FLAGS_MSG_MODE))
|
||||
part1 = pElements->pProperties->vValue.ulVal;
|
||||
if (pElements->pProperties->pNextSibling)
|
||||
{
|
||||
hud_squadmsg_toggle();
|
||||
part2 = pElements->pProperties->pNextSibling->vValue.ulVal;
|
||||
if (pElements->pProperties->pNextSibling->pNextSibling)
|
||||
{
|
||||
part3 = pElements->pProperties->pNextSibling->pNextSibling->vValue.ulVal;
|
||||
}
|
||||
}
|
||||
if (part2 == -1)
|
||||
break; // no ship number or wing
|
||||
|
||||
if (part2 == 0)
|
||||
{
|
||||
Msg_instance = wing_lookup(wing_names[part1]);
|
||||
if (Msg_instance < 0)
|
||||
break;
|
||||
|
||||
if(!(Player->flags & PLAYER_FLAGS_MSG_MODE))
|
||||
{
|
||||
hud_squadmsg_toggle();
|
||||
}
|
||||
|
||||
hud_squadmsg_do_mode(SM_MODE_WING_COMMAND);
|
||||
}
|
||||
else
|
||||
{
|
||||
char shipName[NAME_LENGTH];
|
||||
wing_bash_ship_name(shipName, wing_names[part1], part2);
|
||||
|
||||
Msg_instance = ship_name_lookup(shipName);
|
||||
|
||||
// Can't issue commands to yourself or to nobody
|
||||
if (Msg_instance < 0 || Msg_instance == Player_obj->instance)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if(!(Player->flags & PLAYER_FLAGS_MSG_MODE))
|
||||
{
|
||||
hud_squadmsg_toggle();
|
||||
}
|
||||
|
||||
hud_squadmsg_do_mode(SM_MODE_SHIP_COMMAND);
|
||||
|
||||
}
|
||||
|
||||
hud_squadmsg_do_mode(SM_MODE_WING_COMMAND);
|
||||
break;
|
||||
if (part3 == -1)
|
||||
break;
|
||||
}
|
||||
|
||||
case VID_Action:
|
||||
{
|
||||
int action = pElements->pProperties->vValue.ulVal;
|
||||
|
||||
// If menu is up
|
||||
if(Player->flags & PLAYER_FLAGS_MSG_MODE)
|
||||
int action;
|
||||
if (part3 == -1)
|
||||
{
|
||||
switch(action)
|
||||
{
|
||||
case VID_DestoryTarget: Msg_shortcut_command = ATTACK_TARGET_ITEM; break;
|
||||
case VID_DisableTarget: Msg_shortcut_command = DISABLE_TARGET_ITEM; break;
|
||||
case VID_DisarmTarget: Msg_shortcut_command = DISARM_TARGET_ITEM; break;
|
||||
case VID_DestroySubsys: Msg_shortcut_command = DISABLE_SUBSYSTEM_ITEM; break;
|
||||
case VID_ProtectTarget: Msg_shortcut_command = PROTECT_TARGET_ITEM; break;
|
||||
case VID_IgnoreTarget: Msg_shortcut_command = IGNORE_TARGET_ITEM; break;
|
||||
case VID_FormWing: Msg_shortcut_command = FORMATION_ITEM; break;
|
||||
case VID_CoverMe: Msg_shortcut_command = COVER_ME_ITEM; break;
|
||||
case VID_EngageEnemy: Msg_shortcut_command = ENGAGE_ENEMY_ITEM; break;
|
||||
case VID_Depart: Msg_shortcut_command = DEPART_ITEM; break;
|
||||
default: Msg_shortcut_command = -1; break;
|
||||
|
||||
}
|
||||
|
||||
if(Msg_instance == MESSAGE_ALL_FIGHTERS || Squad_msg_mode == SM_MODE_ALL_FIGHTERS )
|
||||
{
|
||||
// nprintf(("warning", "VOICER hud_squadmsg_send_to_all_fighters\n"));
|
||||
hud_squadmsg_send_to_all_fighters(Msg_shortcut_command);
|
||||
}
|
||||
else if(Squad_msg_mode == SM_MODE_SHIP_COMMAND)
|
||||
{
|
||||
// nprintf(("warning", "VOICER msg ship %d\n", Msg_instance));
|
||||
hud_squadmsg_send_ship_command( Msg_instance, Msg_shortcut_command, 1 );
|
||||
}
|
||||
else if(Squad_msg_mode == SM_MODE_WING_COMMAND)
|
||||
{
|
||||
// nprintf(("warning", "VOICER msg wing %d\n", Msg_instance));
|
||||
hud_squadmsg_send_wing_command( Msg_instance, Msg_shortcut_command, 1 );
|
||||
}
|
||||
else if(Squad_msg_mode == SM_MODE_REINFORCEMENTS )
|
||||
{
|
||||
}
|
||||
|
||||
hud_squadmsg_toggle();
|
||||
action = pElements->pProperties->vValue.ulVal;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(action)
|
||||
{
|
||||
case VID_DestoryTarget: button_function(ATTACK_MESSAGE); break;
|
||||
case VID_DisableTarget: button_function(DISABLE_MESSAGE); break;
|
||||
case VID_DisarmTarget: button_function(DISARM_MESSAGE); break;
|
||||
case VID_DestroySubsys: button_function(ATTACK_SUBSYSTEM_MESSAGE); break;
|
||||
case VID_ProtectTarget: button_function(PROTECT_MESSAGE); break;
|
||||
case VID_IgnoreTarget: button_function(IGNORE_MESSAGE); break;
|
||||
case VID_FormWing: button_function(FORM_MESSAGE); break;
|
||||
case VID_CoverMe: button_function(COVER_MESSAGE); break;
|
||||
case VID_EngageEnemy: button_function(ENGAGE_MESSAGE); break;
|
||||
case VID_Depart: button_function(WARP_MESSAGE); break;
|
||||
}
|
||||
action = part3;
|
||||
}
|
||||
|
||||
doVid_Action(action);
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -359,6 +414,9 @@ void VOICEREC_execute_command(ISpPhrase *pPhrase, HWND hWnd)
|
||||
// Msg_instance = MESSAGE_ALL_FIGHTERS;
|
||||
// Squad_msg_mode == SM_MODE_ALL_FIGHTERS
|
||||
hud_squadmsg_msg_all_fighters();
|
||||
if (pElements->pProperties->pNextSibling) {
|
||||
doVid_Action(pElements->pProperties->pNextSibling->vValue.ulVal);
|
||||
}
|
||||
|
||||
// if(Msg_shortcut_command == -1)
|
||||
// {
|
||||
@@ -384,8 +442,62 @@ void VOICEREC_execute_command(ISpPhrase *pPhrase, HWND hWnd)
|
||||
|
||||
break;
|
||||
}
|
||||
case VID_shields:
|
||||
{
|
||||
int action = pElements->pProperties->vValue.ulVal;
|
||||
mprintf(("Shield Transfer %d \n", action));
|
||||
|
||||
switch(action)
|
||||
{
|
||||
case 0: button_function( SHIELD_XFER_TOP ); break;
|
||||
case 1: button_function( SHIELD_XFER_LEFT ); break;
|
||||
case 2: button_function( SHIELD_XFER_RIGHT ); break;
|
||||
case 3: button_function( SHIELD_XFER_BOTTOM ); break;
|
||||
case 4: button_function( SHIELD_EQUALIZE ); break;
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case VID_speed:
|
||||
case VID_targeting:
|
||||
case VID_other:
|
||||
{
|
||||
int action = pElements->pProperties->vValue.ulVal;
|
||||
mprintf(("Targeting/speed %d \n", action));
|
||||
|
||||
if (action > -1)
|
||||
{
|
||||
button_function( action );
|
||||
}
|
||||
break;
|
||||
/*
|
||||
switch(action)
|
||||
{
|
||||
case 0: button_function( TARGET_NEXT ); break;
|
||||
cas
|
||||
}
|
||||
break;
|
||||
*/
|
||||
}
|
||||
case VID_power:
|
||||
{
|
||||
int action = pElements->pProperties->vValue.ulVal;
|
||||
|
||||
if (action >= INCREASE_WEAPON && action <= ETS_EQUALIZE)
|
||||
{
|
||||
button_function( action );
|
||||
}
|
||||
else
|
||||
// this is for the max engines etc.
|
||||
{
|
||||
for (int i=1; i<7; i++)
|
||||
{
|
||||
button_function( action - 132 );
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@@ -404,5 +516,6 @@ hud_squadmsg_do_mode( SM_MODE_SHIP_COMMAND );
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endif // VOICER
|
||||
#endif // _WIN32
|
||||
+1
-1
@@ -59,7 +59,7 @@ extern void parse_medal_tbl();
|
||||
#define MM_POPUP 1 // called from within some other tight loop (don't use gameseq_ functions)
|
||||
|
||||
// main medals screen
|
||||
void medal_main_init(player *pl,int mode = MM_NORMAL);
|
||||
void medal_main_init(player *pl, int mode = MM_NORMAL);
|
||||
|
||||
// return 0 if the screen should close (used for MM_POPUP mode)
|
||||
int medal_main_do();
|
||||
|
||||
@@ -2338,6 +2338,30 @@ int beam_collide_ship(obj_pair *pair)
|
||||
int hull_enter_collision = model_collide(&mc_hull_enter);
|
||||
int hull_exit_collision = (beam_will_tool_target(b, ship_objp)) ? model_collide(&mc_hull_exit) : 0;
|
||||
|
||||
// If we have a range less than the "far" range, check if the ray actually hit within the range
|
||||
if (b->range < BEAM_FAR_LENGTH
|
||||
&& (shield_collision || hull_enter_collision || hull_exit_collision))
|
||||
{
|
||||
// We can't use hit_dist as "1" is the distance between p0 and p1
|
||||
float rangeSq = b->range * b->range;
|
||||
|
||||
// actually make sure that the collision points are within range of our beam
|
||||
if (shield_collision && vm_vec_dist_squared(&b->last_start, &mc_shield.hit_point_world) > rangeSq)
|
||||
{
|
||||
shield_collision = 0;
|
||||
}
|
||||
|
||||
if (hull_enter_collision && vm_vec_dist_squared(&b->last_start, &mc_hull_enter.hit_point_world) > rangeSq)
|
||||
{
|
||||
hull_enter_collision = 0;
|
||||
}
|
||||
|
||||
if (hull_exit_collision && vm_vec_dist_squared(&mc_hull_exit.hit_point_world, &b->last_start) > rangeSq)
|
||||
{
|
||||
hull_exit_collision = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// check shields for impact
|
||||
// (tooled ships are probably not going to be maintaining a shield over their exit hole,
|
||||
// therefore we need only check the entrance, just as with conventional weapons)
|
||||
|
||||
@@ -141,6 +141,7 @@ extern int Num_weapon_subtypes;
|
||||
#define WF_DESTROYED_BY_WEAPON (1<<6) // destroyed by damage from other weapon
|
||||
#define WF_SPAWNED (1<<7) //Spawned from a spawning type weapon
|
||||
#define WF_HOMING_UPDATE_NEEDED (1<<8) // this is a newly spawned homing weapon which needs to update client machines
|
||||
#define WF_NO_HOMING (1<<9) // this weapon should ignore any homing behavior it'd usually have
|
||||
|
||||
// flags for setting burst fire
|
||||
#define WBF_FAST_FIRING (1<<0) // burst is to use only the firewait to determine firing delays
|
||||
@@ -416,6 +417,7 @@ typedef struct weapon_info {
|
||||
|
||||
int impact_weapon_expl_index; // Index into Weapon_expl_info of which ANI should play when this thing impacts something
|
||||
float impact_explosion_radius; // How big the explosion should be
|
||||
float shield_impact_explosion_radius; // How big the shield hit explosion should be
|
||||
|
||||
int dinky_impact_weapon_expl_index;
|
||||
float dinky_impact_explosion_radius;
|
||||
@@ -670,7 +672,6 @@ void weapon_pause_sounds();
|
||||
// Unpauses all running weapon sounds
|
||||
void weapon_unpause_sounds();
|
||||
|
||||
// Dumps parsed weapon data to a json file
|
||||
extern void weapons_output_json(const char *outfile);
|
||||
void shield_impact_explosion(vec3d *hitpos, object *objp, float radius, int idx);
|
||||
|
||||
#endif
|
||||
+43
-8
@@ -938,6 +938,8 @@ void init_weapon_entry(int weap_info_index)
|
||||
wip->impact_explosion_radius = 1.0f;
|
||||
wip->impact_weapon_expl_index = -1;
|
||||
|
||||
wip->shield_impact_explosion_radius = 1.0f;
|
||||
|
||||
wip->dinky_impact_explosion_radius = 1.0f;
|
||||
wip->dinky_impact_weapon_expl_index = -1;
|
||||
|
||||
@@ -1063,6 +1065,7 @@ void init_weapon_entry(int weap_info_index)
|
||||
|
||||
wip->burst_delay = 1.0f; // 1 second, just incase its not defined
|
||||
wip->burst_shots = 0;
|
||||
|
||||
wip->burst_flags = 0;
|
||||
|
||||
generic_anim_init( &wip->thruster_flame );
|
||||
@@ -1305,10 +1308,22 @@ int parse_weapon(int subtype, bool replace)
|
||||
|
||||
if(optional_string("@Laser Color:"))
|
||||
{
|
||||
// This might be confusing at first glance. If we're a modular table (!first_time),
|
||||
// AND we're providing a new color for the laser (being in this block at all),
|
||||
// AND the RGB values for laser_color_1 and laser_color_2 match...
|
||||
// THEN we conclude that laser_color_2 wasn't explicitly defined before, and the modder would probably prefer
|
||||
// it if the laser didn't suddenly start changing colors from the new to the old over its lifespan. -MageKing17
|
||||
bool reset = (!first_time && (
|
||||
(wip->laser_color_1.red == wip->laser_color_2.red) &&
|
||||
(wip->laser_color_1.green == wip->laser_color_2.green) &&
|
||||
(wip->laser_color_1.blue == wip->laser_color_2.blue)));
|
||||
stuff_ubyte(&r);
|
||||
stuff_ubyte(&g);
|
||||
stuff_ubyte(&b);
|
||||
gr_init_color( &wip->laser_color_1, r, g, b );
|
||||
if (reset) {
|
||||
gr_init_color( &wip->laser_color_2, wip->laser_color_1.red, wip->laser_color_1.green, wip->laser_color_1.blue );
|
||||
}
|
||||
}
|
||||
|
||||
// optional string for cycling laser colors
|
||||
@@ -1317,7 +1332,7 @@ int parse_weapon(int subtype, bool replace)
|
||||
stuff_ubyte(&g);
|
||||
stuff_ubyte(&b);
|
||||
gr_init_color( &wip->laser_color_2, r, g, b );
|
||||
} else {
|
||||
} else if (first_time) {
|
||||
gr_init_color( &wip->laser_color_2, wip->laser_color_1.red, wip->laser_color_1.green, wip->laser_color_1.blue );
|
||||
}
|
||||
|
||||
@@ -1897,6 +1912,12 @@ int parse_weapon(int subtype, bool replace)
|
||||
if ( optional_string("$Impact Explosion Radius:") )
|
||||
stuff_float(&wip->impact_explosion_radius);
|
||||
|
||||
if ( optional_string("$Shield Impact Explosion Radius:") ) {
|
||||
stuff_float(&wip->shield_impact_explosion_radius);
|
||||
} else if (first_time) {
|
||||
wip->shield_impact_explosion_radius = wip->impact_explosion_radius;
|
||||
}
|
||||
|
||||
if ( optional_string("$Dinky Impact Explosion:") ) {
|
||||
stuff_string(fname, F_NAME, NAME_LENGTH);
|
||||
|
||||
@@ -4758,7 +4779,7 @@ void weapon_process_post(object * obj, float frame_time)
|
||||
}
|
||||
|
||||
// a single player or multiplayer server function -- it affects actual weapon movement.
|
||||
if (wip->wi_flags & WIF_HOMING) {
|
||||
if (wip->wi_flags & WIF_HOMING && !(wp->weapon_flags & WF_NO_HOMING)) {
|
||||
weapon_home(obj, num, frame_time);
|
||||
|
||||
// If this is a swarm type missile,
|
||||
@@ -4930,6 +4951,10 @@ void weapon_set_tracking_info(int weapon_objnum, int parent_objnum, int target_o
|
||||
wp = &Weapons[Objects[weapon_objnum].instance];
|
||||
wip = &Weapon_info[wp->weapon_info_index];
|
||||
|
||||
if (wp->weapon_flags & WF_NO_HOMING) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parent_objnum >= 0) {
|
||||
parent_objp = &Objects[parent_objnum];
|
||||
Assert(parent_objp->type == OBJ_SHIP);
|
||||
@@ -4937,6 +4962,16 @@ void weapon_set_tracking_info(int weapon_objnum, int parent_objnum, int target_o
|
||||
parent_objp = NULL;
|
||||
}
|
||||
|
||||
if (parent_objp != NULL && (Ships[parent_objp->instance].flags2 & SF2_NO_SECONDARY_LOCKON)) {
|
||||
wp->weapon_flags |= WF_NO_HOMING;
|
||||
wp->homing_object = NULL;
|
||||
wp->homing_subsys = NULL;
|
||||
wp->target_num = -1;
|
||||
wp->target_sig = -1;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( parent_objp == NULL || Ships[parent_objp->instance].ai_index >= 0 ) {
|
||||
int target_team = -1;
|
||||
if ( target_objnum >= 0 ) {
|
||||
@@ -6030,9 +6065,9 @@ void weapon_hit( object * weapon_obj, object * other_obj, vec3d * hitpos, int qu
|
||||
int weapon_type = Weapons[num].weapon_info_index;
|
||||
int expl_ani_handle;
|
||||
weapon_info *wip;
|
||||
weapon *wp;
|
||||
weapon *wp;
|
||||
bool hit_target = false;
|
||||
|
||||
|
||||
object *other_objp;
|
||||
ship_obj *so;
|
||||
ship *shipp;
|
||||
@@ -6132,7 +6167,7 @@ void weapon_hit( object * weapon_obj, object * other_obj, vec3d * hitpos, int qu
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// For all objects that had this weapon as a target, wipe it out, forcing find of a new enemy
|
||||
for ( so = GET_FIRST(&Ship_obj_list); so != END_OF_LIST(&Ship_obj_list); so = GET_NEXT(so) ) {
|
||||
other_objp = &Objects[so->objnum];
|
||||
@@ -7023,7 +7058,7 @@ void weapon_unpause_sounds()
|
||||
beam_unpause_sounds();
|
||||
}
|
||||
|
||||
void weapons_output_json(const char *outfile)
|
||||
{
|
||||
mprintf(("Exporting weapon data to json.\n"));
|
||||
void shield_impact_explosion(vec3d *hitpos, object *objp, float radius, int idx) {
|
||||
int expl_ani_handle = Weapon_explosions.GetAnim(idx, hitpos, radius);
|
||||
particle_create( hitpos, &vmd_zero_vector, 0.0f, radius, PARTICLE_BITMAP_PERSISTENT, expl_ani_handle, -1.0f, objp );
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <wx/image.h>
|
||||
#include <wx/string.h>
|
||||
//#include <wx/xrc/xmlres.h>
|
||||
#include <wx/wx.h>
|
||||
#include <wx/wx.h>
|
||||
|
||||
IMPLEMENT_APP(wxFRED2)
|
||||
|
||||
@@ -32,4 +32,4 @@ bool wxFRED2::OnInit()
|
||||
frame->Show(TRUE);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
* Created by Ian "Goober5000" Warfield for the FreeSpace2 Source Code Project.
|
||||
* You may not sell or otherwise commercially exploit the source or things you
|
||||
* create based on the source.
|
||||
*/
|
||||
*/
|
||||
|
||||
#include <wx/wx.h>
|
||||
|
||||
@@ -20,4 +20,4 @@ class wxFRED2 : public wxApp
|
||||
|
||||
DECLARE_APP(wxFRED2)
|
||||
|
||||
#endif
|
||||
#endif
|
||||
+1
-1
@@ -2,7 +2,7 @@ dnl configure.ac for fs2_open
|
||||
dnl
|
||||
dnl $Id: configure.ac,v 1.31.2.4 2007-05-28 19:36:12 taylor Exp $
|
||||
|
||||
AC_INIT(fs2_open, 3.7.1)
|
||||
AC_INIT(fs2_open, 3.7.3)
|
||||
AC_CONFIG_SRCDIR(code/freespace2/freespace.cpp)
|
||||
|
||||
dnl we need at least version 2.54 of autoconf
|
||||
|
||||
+1553
-2651
File diff suppressed because it is too large.
Load diff
@@ -83,7 +83,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -197,7 +197,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="wsock32.lib winmm.lib msacm32.lib vfw32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
LinkLibraryDependencies="true"
|
||||
UseLibraryDependencyInputs="false"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -199,7 +199,7 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Copying build..."
|
||||
CommandLine="copy "$(TargetPath)" "$(FS2PATH)/wxfred2_open_3_7_1-debug.exe"
copy "$(ProjectDir)..\..\code\wxfred2\wxfred.xrc" "$(FS2PATH)\wxfred.xrc"
"
|
||||
Outputs="$(FS2PATH)/wxfred2_open_3_7_1-debug.exe;$(FS2PATH)\wxfred.xrc"
|
||||
CommandLine="copy "$(TargetPath)" "$(FS2PATH)/wxfred2_open_3_7_3-debug.exe"
copy "$(ProjectDir)..\..\code\wxfred2\wxfred.xrc" "$(FS2PATH)\wxfred.xrc"
"
|
||||
Outputs="$(FS2PATH)/wxfred2_open_3_7_3-debug.exe;$(FS2PATH)\wxfred.xrc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
@@ -80,15 +80,15 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw28d_xrc.lib wxmsw28d_html.lib wxmsw28d_adv.lib wxmsw28d_core.lib wxbase28d_xml.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib"
|
||||
OutputFile="Debug/wxfred2_open_3_7_1-debug.exe"
|
||||
OutputFile="Debug/wxfred2_open_3_7_3-debug.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(WXWIN)/lib,$(WXWIN)/lib/vc_lib"
|
||||
IgnoreDefaultLibraryNames="libcd.lib,libcid.lib"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/wxfred2_open_3_7_1-debug.pdb"
|
||||
ProgramDatabaseFile=".\Debug/wxfred2_open_3_7_3-debug.pdb"
|
||||
GenerateMapFile="true"
|
||||
MapFileName=".\Debug\Profile\wxfred2/wxfred2_open_3_7_1-debug.map"
|
||||
MapFileName=".\Debug\Profile\wxfred2/wxfred2_open_3_7_3-debug.map"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
@@ -134,8 +134,8 @@
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Copying build..."
|
||||
CommandLine="copy "$(TargetPath)" "$(FS2PATH)\wxfred2_open_3_7_1.exe"
copy "$(ProjectDir)..\..\code\wxfred2\wxfred.xrc" "$(FS2PATH)\wxfred.xrc"
"
|
||||
Outputs="$(FS2PATH)\wxfred2_open_3_7_1.exe;$(FS2PATH)\wxfred.xrc"
|
||||
CommandLine="copy "$(TargetPath)" "$(FS2PATH)\wxfred2_open_3_7_3.exe"
copy "$(ProjectDir)..\..\code\wxfred2\wxfred.xrc" "$(FS2PATH)\wxfred.xrc"
"
|
||||
Outputs="$(FS2PATH)\wxfred2_open_3_7_3.exe;$(FS2PATH)\wxfred.xrc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
@@ -185,15 +185,15 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw28_xrc.lib wxmsw28_html.lib wxmsw28_adv.lib wxmsw28_core.lib wxbase28_xml.lib wxbase28.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib"
|
||||
OutputFile="Release/wxfred2_open_3_7_1.exe"
|
||||
OutputFile="Release/wxfred2_open_3_7_3.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(WXWIN)/lib,$(WXWIN)/lib/vc_lib"
|
||||
IgnoreDefaultLibraryNames="libc.lib,libci.lib"
|
||||
GenerateDebugInformation="false"
|
||||
ProgramDatabaseFile=".\Release/wxfred2_open_3_7_1.pdb"
|
||||
ProgramDatabaseFile=".\Release/wxfred2_open_3_7_3.pdb"
|
||||
GenerateMapFile="false"
|
||||
MapFileName=".\Release\Profile\wxfred2/wxfred2_open_3_7_1.map"
|
||||
MapFileName=".\Release\Profile\wxfred2/wxfred2_open_3_7_3.map"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1_NO-SSE-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3_NO-SSE-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -193,7 +193,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1_SSE-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3_SSE-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -302,7 +302,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -416,7 +416,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="wsock32.lib winmm.lib msacm32.lib vfw32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1_NO-SSE.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3_NO-SSE.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -531,7 +531,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="wsock32.lib winmm.lib msacm32.lib vfw32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1_SSE.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3_SSE.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -646,7 +646,7 @@
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/FORCE:MULTIPLE"
|
||||
AdditionalDependencies="wsock32.lib winmm.lib msacm32.lib vfw32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_1.exe"
|
||||
OutputFile="$(OutDir)\fred2_open_3_7_3.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
UseLibraryDependencyInputs="false"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib ole32.lib advapi32.lib gdi32.lib user32.lib"
|
||||
ShowProgress="0"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1_NO-SSE-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3_NO-SSE-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -200,7 +200,7 @@
|
||||
UseLibraryDependencyInputs="false"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib ole32.lib advapi32.lib gdi32.lib user32.lib"
|
||||
ShowProgress="0"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1_SSE-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3_SSE-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -313,7 +313,7 @@
|
||||
UseLibraryDependencyInputs="false"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib ole32.lib advapi32.lib gdi32.lib user32.lib"
|
||||
ShowProgress="0"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1-DEBUG.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3-DEBUG.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -428,7 +428,7 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1_NO-SSE.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3_NO-SSE.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -546,7 +546,7 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1_SSE.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3_SSE.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
@@ -664,7 +664,7 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib wsock32.lib winmm.lib vfw32.lib msacm32.lib comctl32.lib openal32.lib ogg_static.lib vorbis_static.lib vorbisfile_static.lib theora_static.lib"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_1.exe"
|
||||
OutputFile="$(OutDir)\fs2_open_3_7_3.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""$(ConfigurationName)";../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;"
|
||||
|
||||
@@ -125,12 +125,12 @@
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fred2_open_3_7_1-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fred2_open_3_7_1_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fred2_open_3_7_1_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fred2_open_3_7_1</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fred2_open_3_7_1_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fred2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fred2_open_3_7_3-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fred2_open_3_7_3_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fred2_open_3_7_3_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fred2_open_3_7_3</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fred2_open_3_7_3_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fred2_open_3_7_3_SSE2</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<CustomBuildStep>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Freespace2", "Freespace2.vcxproj", "{A8030FA3-CEAB-4297-99E3-CD2CFB89830B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "libjpeg.vcxproj", "{42A241F2-7996-4AAF-8491-FB885E2DC37D}"
|
||||
|
||||
@@ -124,12 +124,12 @@
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fs2_open_3_7_1-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fs2_open_3_7_1_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fs2_open_3_7_1_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fs2_open_3_7_1</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fs2_open_3_7_1_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fs2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fs2_open_3_7_3-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fs2_open_3_7_3_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fs2_open_3_7_3_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fs2_open_3_7_3</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fs2_open_3_7_3_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fs2_open_3_7_3_SSE2</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<CustomBuildStep>
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
<AdditionalDependencies>comctl32.lib;rpcrt4.lib;winmm.lib;advapi32.lib;wsock32.lib;wxmsw29ud_core.lib;wxbase29ud.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
<CustomBuildStep>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\wxfred2_open_3_7_1-debug.exe" </Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\wxfred2_open_3_7_3-debug.exe" </Command>
|
||||
<Message>Copying build...</Message>
|
||||
<Outputs>$(FS2PATH)\wxfred2_open$(FS_VERSION_FULL)-debug.exe;$(FS2PATH)\wxfred.xrc;%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
@@ -159,9 +159,9 @@
|
||||
<AdditionalDependencies>comctl32.lib;rpcrt4.lib;winmm.lib;advapi32.lib;wsock32.lib;wxmsw29u_core.lib;wxbase29u.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
<CustomBuildStep>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)/wxfred2_open_3_7_1.exe"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)/wxfred2_open_3_7_3.exe"</Command>
|
||||
<Message>Copying build...</Message>
|
||||
<Outputs>$(FS2PATH)\wxfred2_open_3_7_1.exe;%(Outputs)</Outputs>
|
||||
<Outputs>$(FS2PATH)\wxfred2_open_3_7_3.exe;%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -171,14 +171,14 @@
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fred2_open_3_7_1-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fred2_open_3_7_1_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fred2_open_3_7_1_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fred2_open_3_7_1_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fred2_open_3_7_1</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fred2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fred2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fred2_open_3_7_1_AVX</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fred2_open_3_7_3-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fred2_open_3_7_3_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fred2_open_3_7_3_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fred2_open_3_7_3_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fred2_open_3_7_3</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fred2_open_3_7_3_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fred2_open_3_7_3_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fred2_open_3_7_3_AVX</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<CustomBuildStep>
|
||||
|
||||
@@ -170,14 +170,14 @@
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fs2_open_3_7_1-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fs2_open_3_7_1_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fs2_open_3_7_1_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fs2_open_3_7_1_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fs2_open_3_7_1</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fs2_open_3_7_1_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fs2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fs2_open_3_7_1_AVX</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fs2_open_3_7_3-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fs2_open_3_7_3_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fs2_open_3_7_3_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fs2_open_3_7_3_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fs2_open_3_7_3</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fs2_open_3_7_3_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fs2_open_3_7_3_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fs2_open_3_7_3_AVX</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<CustomBuildStep>
|
||||
|
||||
@@ -95,10 +95,10 @@
|
||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;comctl32.lib;rpcrt4.lib;wsock32.lib;winmm.lib;wxmsw28d_xrc.lib;wxmsw28d_html.lib;wxmsw28d_adv.lib;wxmsw28d_core.lib;wxbase28d_xml.lib;wxbase28d.lib;wxtiffd.lib;wxjpegd.lib;wxpngd.lib;wxzlibd.lib;wxregexd.lib;wxexpatd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<CustomBuildStep>
|
||||
<Command>copy %(FullPath) "$(FS2PATH)/wxfred2_open_3_7_1-debug.exe"
|
||||
<Command>copy %(FullPath) "$(FS2PATH)/wxfred2_open_3_7_3-debug.exe"
|
||||
copy "$(ProjectDir)..\..\code\wxfred2\wxfred.xrc" "$(FS2PATH)\wxfred.xrc"</Command>
|
||||
<Message>Copying build...</Message>
|
||||
<Outputs>$(FS2PATH)/wxfred2_open_3_7_1-debug.exe;$(FS2PATH)\wxfred.xrc;%(Outputs)</Outputs>
|
||||
<Outputs>$(FS2PATH)/wxfred2_open_3_7_3-debug.exe;$(FS2PATH)\wxfred.xrc;%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@@ -146,10 +146,10 @@ copy "$(ProjectDir)..\..\code\wxfred2\wxfred.xrc" "$(FS2PATH)\wxfred.xrc"</Comma
|
||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;comctl32.lib;rpcrt4.lib;wsock32.lib;winmm.lib;wxmsw28_xrc.lib;wxmsw28_html.lib;wxmsw28_adv.lib;wxmsw28_core.lib;wxbase28_xml.lib;wxbase28.lib;wxtiff.lib;wxjpeg.lib;wxpng.lib;wxzlib.lib;wxregex.lib;wxexpat.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
<CustomBuildStep>
|
||||
<Command>copy %(FullPath) "$(FS2PATH)\wxfred2_open_3_7_1.exe"
|
||||
<Command>copy %(FullPath) "$(FS2PATH)\wxfred2_open_3_7_3.exe"
|
||||
copy "$(ProjectDir)..\..\code\wxfred2\wxfred.xrc" "$(FS2PATH)\wxfred.xrc"</Command>
|
||||
<Message>Copying build...</Message>
|
||||
<Outputs>$(FS2PATH)\wxfred2_open_3_7_1.exe;$(FS2PATH)\wxfred.xrc;%(Outputs)</Outputs>
|
||||
<Outputs>$(FS2PATH)\wxfred2_open_3_7_3.exe;$(FS2PATH)\wxfred.xrc;%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -170,22 +170,17 @@
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fred2_open_3_7_1-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fred2_open_3_7_1_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fred2_open_3_7_1_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fred2_open_3_7_1_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fred2_open_3_7_1</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fred2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fred2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fred2_open_3_7_1_AVX</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fred2_open_3_7_3-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fred2_open_3_7_3_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fred2_open_3_7_3_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fred2_open_3_7_3_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fred2_open_3_7_3</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fred2_open_3_7_3_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fred2_open_3_7_3_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fred2_open_3_7_3_AVX</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -199,7 +194,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;FRED;WINVER=0x501;_WIN32_WINNT=0x501;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -214,6 +208,7 @@
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -228,7 +223,6 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -243,17 +237,13 @@
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -267,7 +257,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;FRED;WINVER=0x501;_WIN32_WINNT=0x501;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -284,6 +273,7 @@
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -298,7 +288,6 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -313,17 +302,13 @@
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -337,7 +322,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;FRED;WINVER=0x501;_WIN32_WINNT=0x501;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -354,6 +338,7 @@
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -368,7 +353,6 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -383,17 +367,13 @@
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -407,7 +387,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;FRED;WINVER=0x501;_WIN32_WINNT=0x501;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -424,6 +403,7 @@
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -438,7 +418,6 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -453,17 +432,13 @@
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -487,7 +462,7 @@
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
@@ -497,7 +472,8 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -511,7 +487,6 @@
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -520,23 +495,20 @@
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalOptions>/FORCE:MULTIPLE %(AdditionalOptions)</AdditionalOptions>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -571,7 +543,8 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -585,7 +558,6 @@
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -594,23 +566,20 @@
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalOptions>/FORCE:MULTIPLE %(AdditionalOptions)</AdditionalOptions>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -645,7 +614,8 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -659,7 +629,6 @@
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -668,23 +637,20 @@
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalOptions>/FORCE:MULTIPLE %(AdditionalOptions)</AdditionalOptions>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -708,7 +674,7 @@
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
@@ -719,7 +685,8 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -733,7 +700,6 @@
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
@@ -742,13 +708,15 @@
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<AdditionalOptions>/FORCE:MULTIPLE %(AdditionalOptions)</AdditionalOptions>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
<Message>Copying FRED build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
@@ -169,22 +169,17 @@
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fs2_open_3_7_1-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fs2_open_3_7_1_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fs2_open_3_7_1_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fs2_open_3_7_1_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fs2_open_3_7_1</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fs2_open_3_7_1_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fs2_open_3_7_1_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fs2_open_3_7_1_AVX</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">fs2_open_3_7_3-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">fs2_open_3_7_3_SSE-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">fs2_open_3_7_3_SSE2-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">fs2_open_3_7_3_AVX-DEBUG</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">fs2_open_3_7_3</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">fs2_open_3_7_3_SSE</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">fs2_open_3_7_3_SSE2</TargetName>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">fs2_open_3_7_3_AVX</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -197,8 +192,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -214,11 +208,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<ProjectReference>
|
||||
@@ -235,9 +227,8 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<MapExports>true</MapExports>
|
||||
<MapExports>false</MapExports>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
@@ -251,19 +242,15 @@
|
||||
</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug SSE|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -276,8 +263,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -295,10 +281,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<ProjectReference>
|
||||
@@ -315,9 +300,8 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<MapExports>true</MapExports>
|
||||
<MapExports>false</MapExports>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
@@ -331,19 +315,15 @@
|
||||
</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug SSE2|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -356,8 +336,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -375,10 +354,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;_SSE2;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<ProjectReference>
|
||||
@@ -395,9 +373,8 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<MapExports>true</MapExports>
|
||||
<MapExports>false</MapExports>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
@@ -411,19 +388,15 @@
|
||||
</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug AVX|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -436,8 +409,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -455,10 +427,9 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_DEBUG;_VC08;_SSE2;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<ProjectReference>
|
||||
@@ -475,9 +446,8 @@
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libcmt.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<MapExports>true</MapExports>
|
||||
<MapExports>false</MapExports>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
@@ -491,97 +461,15 @@
|
||||
</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<TargetEnvironment>Win32</TargetEnvironment>
|
||||
<TypeLibraryName>$(OutDir)$(ProjectName).tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
|
||||
<BrowseInformation>
|
||||
</BrowseInformation>
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;wsock32.lib;winmm.lib;vfw32.lib;msacm32.lib;comctl32.lib;openal32.lib;ogg_static.lib;vorbis_static.lib;vorbisfile_static.lib;theora_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(Configuration);../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<MapExports>true</MapExports>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<AdditionalOptions>"$(IntDir)*.sbr" %(AdditionalOptions)</AdditionalOptions>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -599,7 +487,82 @@
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
|
||||
<BrowseInformation>
|
||||
</BrowseInformation>
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<AdditionalOptions>/Zo %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>odbc32.lib;odbccp32.lib;wsock32.lib;winmm.lib;vfw32.lib;msacm32.lib;comctl32.lib;openal32.lib;ogg_static.lib;vorbis_static.lib;vorbisfile_static.lib;theora_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(Configuration);../../oggvorbis/lib;../../openal/libs/win32;../../openal/libs/win64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<MapExports>false</MapExports>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<AdditionalOptions>"$(IntDir)*.sbr" %(AdditionalOptions)</AdditionalOptions>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release SSE|Win32'">
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<TargetEnvironment>Win32</TargetEnvironment>
|
||||
<TypeLibraryName>$(OutDir)$(ProjectName).tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -615,13 +578,13 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<AdditionalOptions>/Zo %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
@@ -632,7 +595,6 @@
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
@@ -641,6 +603,8 @@
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<MapExports>false</MapExports>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<AdditionalOptions>"$(IntDir)*.sbr" %(AdditionalOptions)</AdditionalOptions>
|
||||
@@ -648,19 +612,15 @@
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release SSE2|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -678,7 +638,7 @@
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -694,13 +654,13 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<AdditionalOptions>/Zo %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;_SSE2;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
@@ -712,7 +672,6 @@
|
||||
<UACUIAccess>false</UACUIAccess>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
@@ -721,6 +680,9 @@
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<MapExports>false</MapExports>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<AdditionalOptions>"$(IntDir)*.sbr" %(AdditionalOptions)</AdditionalOptions>
|
||||
@@ -728,19 +690,16 @@
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
</PostBuildEvent>
|
||||
<ProjectReference />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release AVX|Win32'">
|
||||
<CustomBuildStep>
|
||||
<Message>Copying build...</Message>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
</Command>
|
||||
<Outputs>$(FS2PATH)\$(TargetFileName);%(Outputs)</Outputs>
|
||||
</CustomBuildStep>
|
||||
<CustomBuildStep />
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
@@ -758,12 +717,12 @@
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;USE_OPENAL;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
@@ -774,13 +733,13 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level2</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<AdditionalOptions>/Zo %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;_SSE2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>NDEBUG;_VC08;_SSE2;FS2_VOICER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
@@ -792,7 +751,6 @@
|
||||
<UACUIAccess>false</UACUIAccess>
|
||||
<IgnoreSpecificDefaultLibraries>libc.lib;libcd.lib;libci.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
<MapFileName>$(TargetDir)$(TargetName).map</MapFileName>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
@@ -801,6 +759,9 @@
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<MapExports>false</MapExports>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Bscmake>
|
||||
<AdditionalOptions>"$(IntDir)*.sbr" %(AdditionalOptions)</AdditionalOptions>
|
||||
@@ -808,7 +769,8 @@
|
||||
<OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
|
||||
</Bscmake>
|
||||
<PostBuildEvent>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"</Command>
|
||||
<Command>copy /y "$(TargetPath)" "$(FS2PATH)\$(TargetFileName)"
|
||||
copy /y "$(OutputPath)$(TargetName).pdb" "$(FS2PATH)\$(TargetName).pdb"</Command>
|
||||
</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
<Message>Copying build...</Message>
|
||||
|
||||
@@ -158,8 +158,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
@@ -175,6 +174,8 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -199,8 +200,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
@@ -218,6 +218,8 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -242,8 +244,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
@@ -261,6 +262,8 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -285,8 +288,7 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;_WINDOWS;WIN32;_DEBUG;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>true</BufferSecurityCheck>
|
||||
@@ -304,6 +306,8 @@
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>NDEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -334,13 +338,13 @@
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
@@ -350,9 +354,10 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -377,7 +382,7 @@
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -394,9 +399,10 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -421,7 +427,7 @@
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -438,9 +444,10 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -465,13 +472,13 @@
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<AdditionalIncludeDirectories>../../code;../../libjpeg;../../libpng;../../lua;../../oggvorbis/include;../../openal/include;../../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>FS2_SPEECH;FS2_VOICER;NDEBUG;WIN32;_WINDOWS;PDB_DEBUGGING;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
@@ -482,9 +489,10 @@
|
||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<UndefinePreprocessorDefinitions>_DEBUG;%(UndefinePreprocessorDefinitions)</UndefinePreprocessorDefinitions>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnablePREfast>false</EnablePREfast>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -528,8 +536,8 @@
|
||||
<ClCompile Include="..\..\code\cutscene\oggplayer.cpp" />
|
||||
<ClCompile Include="..\..\code\Debris\debris.cpp" />
|
||||
<ClCompile Include="..\..\code\debugconsole\console.cpp" />
|
||||
<ClCompile Include="..\..\code\debugconsole\consolecmds.cpp" />
|
||||
<ClCompile Include="..\..\code\debugconsole\consoleparse.cpp" />
|
||||
<ClCompile Include="..\..\code\debugconsole\consolecmds.cpp" />
|
||||
<ClCompile Include="..\..\code\debugconsole\consoleparse.cpp" />
|
||||
<ClCompile Include="..\..\code\fireball\fireballs.cpp" />
|
||||
<ClCompile Include="..\..\code\fireball\warpineffect.cpp" />
|
||||
<ClCompile Include="..\..\code\gamehelp\contexthelp.cpp" />
|
||||
@@ -809,8 +817,8 @@
|
||||
<ClInclude Include="..\..\code\cutscene\mvelib.h" />
|
||||
<ClInclude Include="..\..\code\cutscene\oggplayer.h" />
|
||||
<ClInclude Include="..\..\code\debugconsole\console.h" />
|
||||
<ClInclude Include="..\..\code\debugconsole\consoleparse.h" />
|
||||
<ClInclude Include="..\..\code\Debris\debris.h" />
|
||||
<ClInclude Include="..\..\code\debugconsole\consoleparse.h" />
|
||||
<ClInclude Include="..\..\code\Debris\debris.h" />
|
||||
<ClInclude Include="..\..\code\DirectX\vasync.h" />
|
||||
<ClInclude Include="..\..\code\DirectX\vdinput.h" />
|
||||
<ClInclude Include="..\..\code\DirectX\vdplay.h" />
|
||||
|
||||
@@ -166,7 +166,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -198,7 +197,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -232,7 +230,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -266,7 +263,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_LIB;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -311,7 +307,7 @@
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
@@ -427,7 +423,7 @@
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
|
||||
@@ -170,7 +170,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
@@ -202,7 +201,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
@@ -236,7 +234,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
@@ -270,7 +267,6 @@
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
@@ -314,7 +310,7 @@
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
@@ -433,7 +429,7 @@
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
|
||||
@@ -159,7 +159,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>PNG_DEBUG=1;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -190,7 +189,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>PNG_DEBUG=1;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -223,7 +221,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>PNG_DEBUG=1;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -256,7 +253,6 @@
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>PNG_DEBUG=1;WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
@@ -301,15 +297,14 @@
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<FloatingPointModel>Fast</FloatingPointModel>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
@@ -351,8 +346,7 @@
|
||||
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
@@ -394,8 +388,7 @@
|
||||
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
@@ -429,7 +422,7 @@
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet>AdvancedVectorExtensions</EnableEnhancedInstructionSet>
|
||||
<FloatingPointModel>Precise</FloatingPointModel>
|
||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
@@ -437,8 +430,7 @@
|
||||
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>
|
||||
</DebugInformationFormat>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
|
||||
Loaded 100 of 113 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user