Commit graph

358 commits

Author SHA1 Message Date
Kp d94139c79d Remove redundant partial_range iterator specification 2014-07-06 03:34:43 +00:00
Kp 229dbe1b47 Add runtime exception reporting to valptridx 2014-07-05 22:00:08 +00:00
Kp 689c2496d0 Unify IFF palette handling 2014-07-05 03:48:57 +00:00
Matt Vandermeulen 28f307eb85 Fixes #5 - Byteswap header renamed to byteutil, plus sed magic
[Kp: switch to #pragma for byteutil.h]
2014-07-03 02:03:08 +00:00
Kp 7a1b103ed1 Reduce template recursion in serializer 2014-07-02 03:08:44 +00:00
Kp 6222b58bbc Move uvl_list into g3_draw_rod_tmap 2014-07-01 03:10:56 +00:00
Kp b6033c49f2 Use unsigned transparent bitmap bounds 2014-07-01 01:34:16 +00:00
Kp 3abc33d6cc Optimize gr_rle_decode 2014-06-30 23:56:51 +00:00
Kp 8958a0dfbe Remove unnecessary typename usage 2014-06-30 03:25:47 +00:00
Kp d35b021ac6 Fix misspelled C++ guard in loadgl.h 2014-06-28 03:57:57 +00:00
Kp 90300d54d9 Precompute fix_recip table 2014-06-23 04:46:07 +00:00
Kp 7836562a24 Switch serial pad constants to static const 2014-06-22 22:12:17 +00:00
Kp 77ba463614 Compile out unneeded pad initialization 2014-06-22 22:04:23 +00:00
Kp b3c953375c Read lines in blocks 2014-06-22 21:56:03 +00:00
Kp ad3e540b62 Simplify lengthof header 2014-06-22 21:05:08 +00:00
Kp 599520fabb Add operator bool to exact_type<T> 2014-06-22 21:03:23 +00:00
Kp 794572b771 Enable using count_array_t<T,S> with prohibit_void_ptr<T> 2014-06-22 19:06:52 +00:00
Kp dc42dad15a Check that types passed to PHYSFS_read are POD
More is needed to trap some misuses, but those traps flag existing code.
2014-06-22 18:52:00 +00:00
Kp e6a691c5c7 Check that types passed to PHYSFS_write are POD
More is needed to trap some misuses, but those traps flag existing code.
2014-06-22 03:54:35 +00:00
Kp f6631ce742 Unpack various structures
Prohibit conversion to void* to avoid accidental use with memcpy
2014-06-21 23:56:27 +00:00
Kp 57a3541424 Fix serial::pad for gcc 4.5 2014-06-21 23:21:30 +00:00
Kp c016ace90b Fix partial_range.h for gcc 4.5 2014-06-21 23:21:03 +00:00
Kp 2e95d8c0a8 Use array<> for Walls 2014-06-20 02:59:53 +00:00
Kp d3ecca360c Read matcen_info structures carefully 2014-06-20 02:59:53 +00:00
Kp cb498b3b38 Make padding value customizable 2014-06-20 02:59:53 +00:00
Kp 958f452d2e Improve UDT static_assert messages 2014-06-15 22:19:26 +00:00
Kp 488e46b562 Return reasonable type from deleted partial_range
Avoid secondary errors related to binding void as a range.
2014-06-14 01:15:33 +00:00
Kp b5701bf202 Add __attribute__((warn_unused_result)) to partial_range 2014-06-08 00:05:33 +00:00
Kp 5c14cf870f Add optional offset to partial_range 2014-06-08 00:05:33 +00:00
Kp 0257b9ca1c Disallow using signed offsets with partial_range 2014-06-08 00:05:32 +00:00
zico ad7cb106bc Changed custom D1X license to GPLv3 2014-06-01 19:55:23 +02:00
Kp 9b0fb5da0a Write eclip structures carefully 2014-02-01 18:55:18 +00:00
Kp 917ef39258 Use array<> for Vclip 2014-01-23 03:48:25 +00:00
Kp a2427f58b5 Use special type to reduce pointer/index conversions 2014-01-12 19:32:12 +00:00
Kp d246005c7e Move object_create_explosion_sub pointer into loop 2014-01-12 00:33:08 +00:00
Kp aac0ab26d7 Refactor _DEFINE_VALPTRIDX_SUBTYPE_USERTYPES 2014-01-11 18:20:33 +00:00
Kp 07a23cbaf2 Detect always-invalid valptridx indexes 2014-01-10 03:58:03 +00:00
Kp f1a6757693 Use objptridx_t for obj_create 2014-01-10 03:20:11 +00:00
Kp a748065fe5 Explicitly delete valptridx subtype default constructors 2014-01-06 04:17:57 +00:00
Kp 8218af34b5 Add special type to let obj_*link take either pointer or index 2014-01-03 04:04:04 +00:00
Kp 094dfbf3d4 Reduce header inclusions 2013-12-31 03:22:03 +00:00
Kp 745633eabe Use vector to allow rendering unlimited robots 2013-12-29 04:54:08 +00:00
Kp 073f00974a Eliminate uses of the typedef struct X { ... } X; pattern
C++ does not require this pattern.

import re, fileinput
to = re.compile(r'^typedef struct ([a-z_A-Z]+)\s*{')
tc = re.compile(r'^}(.*?)\s*([a-z_A-Z]+);$')
osn = None
for line in fileinput.input(inplace=True):
	m = to.match(line)
	if m:
		osn = m.group(1)
		print 'struct %s\n{' % osn
		continue
	if osn:
		m = tc.match(line)
		if m:
			csn = m.group(2)
			if osn == csn:
				print '}%s;' % m.group(1)
				osn = None
				continue
			else:
				osn = None
	print line,
2013-12-28 22:48:07 +00:00
Kp dfbe78c214 Remove useless 'unused' field in grs_bitmap
Saves a realignment to pointer boundary.
2013-12-28 22:38:02 +00:00
Kp 2d274dba8b Tighten SWAPINT 2013-12-28 22:37:00 +00:00
Kp cc9f7f669d Tighten definition of SWAPSHORT 2013-12-28 22:36:59 +00:00
Kp 1694eed536 Match PHYSFSX_readSXE?? return types to the internal type 2013-12-28 22:03:50 +00:00
Kp 7fb4c6307f Add debug option -no-grab to prevent window grabbing 2013-12-22 20:56:55 +00:00
Kp 456c2d0bb0 Scrub control codes from stdout/file, but not HUD/console 2013-12-22 20:56:55 +00:00
Kp a7bd19a7ca Convert fvi to use countarray for segment list
Also fixes a bug where seglist could receive wrong elements when
fvi_sub recursive call returns a type other than HIT_NONE.  Bug caused
by badly named variables:

	int ii;
	for (ii=0;i < temp_n_segs && *n_segs < MAX_FVI_SEGS-1;)
		seglist[(*n_segs)++] = temp_seglist[ii++];

The wrong counter is used for first part of the conditional, so
uninitialized elements of temp_seglist could be read back if i
(==n_segs_visited) is smaller than temp_n_segs or elements could be
skipped if i is greater than temp_n_segs.
2013-12-22 20:56:53 +00:00
Kp 038bbad26a Rearrange headers to build under all test modes 2013-12-22 20:56:35 +00:00
Kp 58e740c0bd Remove unused declaration of Center_names 2013-12-22 20:56:35 +00:00
Kp fe7c9fa444 Use countarray for HUD_messages 2013-12-22 20:56:33 +00:00
Kp 7894647bc9 Let PHYSFSX_puts receive optional string length 2013-12-22 20:13:22 +00:00
Kp 84a0dcba27 Rename con_puts length template 2013-12-22 20:12:41 +00:00
Kp 6de986d39c Print file offset on read error 2013-12-22 20:02:26 +00:00
Kp f269ed7374 Make Been_visited a local bit array 2013-12-22 05:29:25 +00:00
Kp 9a7185f770 Store warning segments in countarray object 2013-12-22 05:27:16 +00:00
Kp a8e9f9f624 Store found segments in countarray object
Raise MAX_FOUND_SEGS to MAX_SEGMENTS to ease code reuse.
2013-12-22 01:54:15 +00:00
Kp c31c67c587 Store selected segments in countarray object 2013-12-22 01:54:15 +00:00
Kp b1c5307eb1 Use array for palette_array_t 2013-12-22 00:37:36 +00:00
Kp e9f9cb676f Centralize palette utilities 2013-12-22 00:05:13 +00:00
Kp a3d66a3b37 Add typedef palette_array_t for palette data 2013-12-22 00:05:13 +00:00
Kp 11f7bc51ee Use unsigned count of frames in a vclip 2013-12-22 00:05:13 +00:00
Kp 1e8036bd24 Split compiler.h for PCH compatibility 2013-12-21 05:12:38 +00:00
Kp 5d801ce386 Add #error diagnostics to compiler.h 2013-12-21 01:54:38 +00:00
Kp fbf1f8a658 Annotate mem_malloc/calloc/realloc as __attribute__((alloc_size)) 2013-12-20 03:33:32 +00:00
Kp 737fe73dd7 Annotate mem_malloc/mem_calloc as __attribute__((malloc)) 2013-12-20 03:24:39 +00:00
Kp e4b091dd38 Make ogl_pal a ubyte (*)[256*3] to improve checking 2013-12-20 03:19:40 +00:00
Kp 3bf16e57dc Remove PHYSFSX_gets, PHYSFSX_readString
They do not check for a buffer overflow.
2013-12-20 03:16:46 +00:00
Kp c561c3d514 Move multi_send_data_direct type into template parameter
Optimizing compilers may now delete the size check.
2013-12-20 03:08:19 +00:00
Kp f0bae2c8cd Add EVENT_WINDOW_CREATED to centralize window init/deinit logic 2013-12-20 02:51:24 +00:00
Kp 03821fab0d Rely on libc strdup if DEBUG_MEMORY_ALLOCATIONS is unset
If !DEBUG_MEMORY_ALLOCATIONS, our strdup is not special.  Rely on the
compiler one, which might be.
2013-12-19 03:31:24 +00:00
Kp aba6c2dfee Pass glow_values as array<> to retain size information 2013-12-19 03:31:24 +00:00
Kp a40c19f770 Fix con_puts buffer overread
ASan reports a 2K read from a small string literal.

Also, fix silly double copy in con_add_buffer_line and delete too-short
memset in con_add_buffer_line.
2013-12-19 03:31:24 +00:00
Kp 2f18c5037d Store group lists as countarray objects 2013-12-18 03:48:52 +00:00
Kp e8de74b8bf Reject inappropriate printf usage 2013-12-17 04:03:35 +00:00
Kp 21cc89e2c8 Use ui_dputs_at instead of ui_dprintf_at where possible 2013-12-17 04:03:34 +00:00
Kp 7efeb3f29d Use PHYSFSX_puts instead of PHYSFSX_printf where possible 2013-12-17 04:03:34 +00:00
Kp c3c1695ba5 Use gr_ustring instead of gr_uprintf where possible 2013-12-17 04:03:34 +00:00
Kp 1bf3722670 Use gr_string instead of gr_printf where possible 2013-12-17 04:03:34 +00:00
Kp 3d79fe9b40 Use editor_status instead of editor_status_fmt where possible 2013-12-17 04:03:34 +00:00
Kp a99b07c98e Use Error_puts instead of Error where possible 2013-12-17 04:03:34 +00:00
Kp f82ba904bd Use Warning_puts instead of Warning where possible 2013-12-17 04:03:34 +00:00
Kp 335cabcc79 Use con_puts instead of con_printf where possible 2013-12-17 04:03:34 +00:00
Kp be041a9cfc Add type checking for ui_create_dialog 2013-12-17 03:49:24 +00:00
Kp d1fa9ff7a6 Simplify setup for ui_messagebox_n 2013-12-15 21:54:59 +00:00
Kp 3908215e73 Add type checking to nm_messagebox format string 2013-12-15 21:54:17 +00:00
Kp cea46651fc Check type of window handler function 2013-12-15 18:51:26 +00:00
Kp cb4fd7c1b4 Compact known file extension storage 2013-12-13 03:58:01 +00:00
Kp 4dfceab50b Factor out file extension filtering 2013-12-13 03:51:14 +00:00
Kp 07877853ba Use static_assert where available 2013-12-13 03:44:02 +00:00
Kp 322c61ef01 Remove use of heap-based splitword 2013-12-08 21:43:53 +00:00
Kp b7fe431979 Use RAII for playsave strings 2013-12-08 21:02:10 +00:00
Kp 3b9b5ebfb0 Use RAII to manage function-local heap objects 2013-12-08 19:04:52 +00:00
Kp 75c229c6bf Normalize con_printf newline usage 2013-12-07 21:13:37 +00:00
Kp 61d8fe7cc8 Remove unused return value of gr_*printf / gr_*string 2013-12-07 18:44:07 +00:00
Kp 60727dd7d5 Add missing va_end calls 2013-12-07 18:42:50 +00:00
Kp 706b458699 Mark PHYSFSX_find* functions nonnull 2013-12-07 18:40:32 +00:00
Kp a2cec5d71f Switch PHYSFSX_fgets to auto-sized variant where possible 2013-12-07 18:39:19 +00:00
Kp 7f5410cc8b Use lengthof instead of sizeof(A)/sizeof(A[0])
The latter form can accept pointers, but the template lengthof cannot.
2013-12-07 18:38:10 +00:00
Kp 9de54cfa74 Switch to C++ linkage
import fileinput
guard = 0
cxxguard = '#ifdef __cplusplus\n'
for line in fileinput.input(inplace=True):
	if line == cxxguard:
		guard = 1
		continue
	if guard:
		if line == 'extern "C" {\n':
			guard = 2
			continue
		if line == '}\n':
			guard = 0
			continue
		if guard == 2:
			assert(line == '#endif\n')
			guard = 0
			print cxxguard,
			continue
	print line,
2013-12-06 03:35:32 +00:00
Kp eb84a067fa Remove now unused fgets_unlimited 2013-12-06 03:28:59 +00:00
Kp 25c731cc2c Probe for usable array template 2013-12-01 22:42:47 +00:00
Kp d3637e7524 Invert sense of SysUseNiceFPS 2013-12-01 22:37:21 +00:00
Kp d626b6c3d4 Add include guard to kdefs.h 2013-12-01 00:53:22 +00:00
Kp 6439e41e3a Store SDL key name inline 2013-11-28 00:52:37 +00:00
Kp 386c193cae Make med_functions const 2013-11-28 00:27:43 +00:00
Kp e30f548d60 Invert sense of DbgAltTexMerge 2013-11-24 22:57:36 +00:00
Kp 761795e4c8 Invert sense of DbgBigPig 2013-11-24 22:57:36 +00:00
Kp 3b49e65f95 Invert sense of DbgUseDoubleBuffer 2013-11-24 22:57:36 +00:00
Kp bbb9214e0e Invert sense of hires/lowres options 2013-11-24 22:57:36 +00:00
Kp 8899120312 Remove SndDisableSdlMixer when mixer=0 2013-11-24 22:57:36 +00:00
Kp 9b167689ba Remove unused variable joy_num_axes 2013-11-09 05:08:37 +00:00
Kp f11e787ef3 Use helper for bounding check 2013-11-08 03:14:44 +00:00
Kp ed8484f096 Remove unnecessary packing on vms_vector 2013-11-08 03:14:43 +00:00
Kp 9dec31d801 Remove unused vms_svec 2013-11-01 02:58:05 +00:00
Kp 663d81cc8f Remove unused function med_rotate_segment_ang 2013-10-29 03:24:43 +00:00
Kp be777c78a3 Remove unused function med_copy_segment 2013-10-29 03:24:43 +00:00
Kp 50392e9a3c Mark OpenGL loader functions static 2013-10-29 03:24:42 +00:00
Kp 8ed99faf5c Make headers freestanding 2013-10-26 03:50:28 +00:00
Kp 9e1c33cca3 Rename struct _grs_* to struct grs_* for consistency 2013-10-26 03:50:28 +00:00
Kp 980621b9d4 Move similar/editor/med.c -> similar/editor/med.cpp 2012-11-17 06:14:09 +00:00
Kp 7de558490f Move similar/editor/kfuncs.c -> similar/editor/kfuncs.cpp 2012-11-17 06:14:09 +00:00
Kp 65b809b218 Move similar/editor/info.c -> similar/editor/info.cpp 2012-11-17 06:14:09 +00:00
Kp f95d401926 Move similar/editor/group.c -> similar/editor/group.cpp 2012-11-17 06:14:09 +00:00
Kp 1d073475e7 Mark various headers for C linkage 2013-10-20 22:49:11 +00:00
Kp 24ac83d88c Make PLAYER_DIRECTORY_STRING work in C++ 2013-10-19 17:03:11 +00:00
Kp 00f0fddabc Centralize handling of SysUsePlayersDir 2013-10-06 21:04:29 +00:00
Kp 2dddf084e0 Move similar/editor/eobject.c -> similar/editor/eobject.cpp 2013-10-05 23:10:44 +00:00
Kp 57a0b23ae4 Move similar/editor/elight.c -> similar/editor/elight.cpp 2013-10-05 23:09:01 +00:00
Kp 21c9e11811 Move similar/editor/centers.c -> similar/editor/centers.cpp 2013-10-05 23:07:23 +00:00
Kp bd467b4140 Move similar/main/inferno.c -> similar/main/inferno.cpp 2013-10-05 21:35:58 +00:00
Kp 4db024f953 Move similar/main/gamesave.c -> similar/main/gamesave.cpp 2013-10-05 21:35:58 +00:00
Kp e5ee9b72f1 Move similar/main/aipath.c -> similar/main/aipath.cpp 2013-10-05 21:35:58 +00:00
Kp b4107e6526 Remove duplicate declarations 2013-10-03 03:11:52 +00:00
Kp c58c4e4d06 Move declarations to headers 2013-10-03 03:11:52 +00:00
Kp e2b7b802e3 Move similar/arch/sdl/digi.c -> similar/arch/sdl/digi.cpp 2013-10-01 02:53:23 +00:00
Kp 4863c42c9d Move similar/3d/interp.c -> similar/3d/interp.cpp 2013-10-01 02:53:09 +00:00
Kp 4d026f8b69 Move similar/2d/pcx.c -> similar/2d/pcx.cpp 2013-10-01 02:53:09 +00:00
Kp fce2717e83 Move similar/arch/sdl/jukebox.c -> similar/arch/sdl/jukebox.cpp 2013-10-01 02:53:09 +00:00
Kp ace3238790 Move similar/arch/sdl/digi_mixer.c -> similar/arch/sdl/digi_mixer.cpp 2013-10-01 02:53:09 +00:00
Kp aa9127e3c1 Enable -Wwrite-strings 2013-09-15 21:34:03 +00:00
Kp ef218b7665 Simplify pilot deletion 2013-09-15 21:34:03 +00:00
Kp 4e177dd3fa Move common/arch/win32/messagebox.c -> common/arch/win32/messagebox.cpp 2013-09-02 23:59:31 +00:00
Kp cc90678647 Move common/arch/sdl/digi_mixer_music.c -> common/arch/sdl/digi_mixer_music.cpp 2013-09-02 23:59:31 +00:00
Kp 5bafa16e7f Fix level load hang on >=mingw32-gcc-4.7
Starting in gcc 4.7 "Windows mingw targets are using the -mms-bitfields
option by default." <http://gcc.gnu.org/gcc-4.7/changes.html>.  This
causes __attribute__((packed)) not to be effective on structures that
are used to express the layout of on-disk data.  In turn, that causes
piggy.c to mishandle texture loads, eventually resulting in an infinite
loop.  Add a pragma pack to force the headers to pack tightly on
Windows.
2013-08-25 17:16:41 +00:00
Kp af52e78a50 Move similar/arch/ogl/ogl.c -> similar/arch/ogl/ogl.cpp 2013-08-24 17:10:35 +00:00
Kp d909692148 Allow compiler to unroll pow2ize 2013-08-24 16:44:23 +00:00
Kp 20cf3f4cdb Mark various OGL functions static 2013-08-24 16:44:23 +00:00