Anders Jenbo
0d7f87630b
Remove width from info panel sy value
...
This was left behind when doing 337bc9b125
7 years ago
Anders Jenbo
d354bd9767
Lock framerate at vsync instead of 20fps
...
Since most animations are still controlled by the game logic the only
real benefit is smoother mouse and scrolling text, but it's a start :)
7 years ago
Anders Jenbo
113b060e03
Use cel function to render PrintQTextChr
7 years ago
Anders Jenbo
7d1b0f24f7
Eliminate overdraw in cell functions
7 years ago
Anders Jenbo
da679a66a6
Convert inc file to a function
7 years ago
Anders Jenbo
991f26f2c6
Deduplicate scrollrt.cpp
7 years ago
Anders Jenbo
3fe2d08940
Deduplicate monster drawing
7 years ago
Anders Jenbo
dfbce7b2ce
Deduplicate drawing players
7 years ago
Anders Jenbo
305484156e
Deduplicate drawign items, remove pBuff from scrollrt_draw_e_flag()
7 years ago
Anders Jenbo
8f916e4d1f
Merge town_draw_town_all() with scrollrt_draw_dungeon()
7 years ago
Anders Jenbo
40fa2f6596
Merge east-flag functions
7 years ago
Anders Jenbo
760aaa8b37
Smoother and faster loading
...
Predictable: Always have the same number of steps in the progress bar
Faster: Increate size of steps to fit with the number of steps
7 years ago
Anders Jenbo
16820106bc
Merge town_draw() with scrollrt_draw()
...
This require calling DRLG_InitTrans() during CreateTown() to clear out
the transparancy flags after having been to the duntion. Else the
mausoleum will be transparent.
7 years ago
Anders Jenbo
f8c16a1dcb
Only use safe blitting and set gpBufEnd to the correct relative values
...
This again allows us to only selectivly render the UI panel
This also eliminates the need for the BORDER_BOTTOM 10k memory saved!
7 years ago
Anders Jenbo
c44b2ee09f
Merge town_clear_buf with world_draw_black_tile
7 years ago
Anders Jenbo
d0f1100983
Drop speedcel optimizations
...
Even on VC6 this appears to not improve performance in any noticable way
7 years ago
Anders Jenbo
2079b67475
Drop dpiece_defs_map_1 memory access optimization
...
This also gets rid of IsometricCoord. They where used to map tiles in a
way that had a simpler access pattern when rendering the screen in
visual oriented rows.
See
https://github.com/diasurgical/devilution/pull/544#issuecomment-450968761
7 years ago
Anders Jenbo
bfe0a54f4a
Merge T_DrawView and T_DrawGame with there scrollrt variants
7 years ago
Anders Jenbo
7ab68036f2
Remove extra flag and double call to draw function
7 years ago
Anders Jenbo
c4a7df80a7
Use CelDraw function for rendering instead of CelBlit
...
This leaves just town_special, scrollrt arches and left side of
two-handed weapons to be using direct blitting functions.
7 years ago
Anders Jenbo
337bc9b125
Render text in screen cordinates instead of buffer offsets
7 years ago
Anders Jenbo
40cb1c01f0
Calcualte SStringY instead of using a prebaked table
7 years ago
Anders Jenbo
e8cd0aedfb
Use cel functions to blit control panel text
7 years ago
Anders Jenbo
ad7a621e5f
Drop PitchTbl to avoid resolution restriction
7 years ago
Anders Jenbo
e695c0d9ea
Combine zoomed and standard view
7 years ago
Anders Jenbo
d4e3b573d0
Allow for adjustable resolutions
...
The render is still only stable when height is a multiple of 32 and
width is a multiple of 64. 832x480 gives you close to 16:9 with the
original height.
7 years ago
Anders Jenbo
9e1b161bc0
Unify upper and lower screen rendering
7 years ago
Anders Jenbo
8ed4515727
Strip clipping from town and scroll
7 years ago
Anders Jenbo
11e8df8f6c
Deduplicate missile rendering code
7 years ago
Gleb Mazovetskiy
df8d7a1f46
Compatibility with SDL v2.0.3
...
RG350 and GCW0 devices have an ancient version of SDL2.
7 years ago
Anders Jenbo
141bffe1dd
Update town.cpp
7 years ago
galaxyhaxz
7f0eb791f8
Fix function order [drlg_l4.cpp]
7 years ago
galaxyhaxz
2b05500486
Fix function order [drlg_l3.cpp]
7 years ago
Anders Jenbo
feeae23076
Prevent infinit recursion in UiOkDialog
7 years ago
Anders Jenbo
6597688eac
Rename cell functions
7 years ago
galaxyhaxz
74216dc1b4
Fix function order [drlg_l1.cpp]
7 years ago
Anders Jenbo
263ab2bb48
Remove unused debug functions
7 years ago
Anders Jenbo
810b12a37d
Drop unused code
7 years ago
Anders Jenbo
a8e4db538f
Display SDL error messages in UI dialog
...
This will also end the application in most cases
7 years ago
Gleb Mazovetskiy
426c246535
Simplify SDL1/2 palette handling
...
SDL 1 and 2 handle surface palettes very differently.
This adds a few compatibility functions that do the right thing
depending on the SDL version.
7 years ago
Anders Jenbo
bf040777cb
Make more use of cell helpers
7 years ago
Gleb Mazovetskiy
69d6238a7c
Add BUGFIX comment for gmenu_call_proc
7 years ago
Gleb Mazovetskiy
bf493d8b58
Fix UB: pointer overflow gmenu.cpp:112
7 years ago
galaxyhaxz
3c7a08a336
Fix function order [scrollrt.cpp] ( #1800 )
7 years ago
Gleb Mazovetskiy
fb37bbf675
Disable some signed shift UBSAN warnings
...
On Clang we can do this globally via a sanitizer blacklist, but that's not supported on GCC (yet):
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61978
We disable these warnings because all compilers implement them in the
same way according to the N2218 proposal to standardize the behaviour:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2218.htm
7 years ago
Gleb Mazovetskiy
65344058ec
Fix UB: Misaligned access in GetCelFrameClipped
...
runtime error: load of misaligned address 0x632000363773 for type 'WORD', which requires 2 byte alignment
0x632000363773: note: pointer points here
7f 7f 7f 3e 0a 00 02 01 50 04 00 00 00 00 7f 7f 7f 7f 7f 7f 7f 7f 7f 34 bc ac ff bc 5b f9 fc dc
It was actually out-of-bounds as well so I had to add a bounds check.
7 years ago
Gleb Mazovetskiy
c2056c6cbf
SHA: Fix some implementation-defined behaviour ( #343 )
...
* SHA: Fix negative base shift UB
* SHA: Avoid signed integer overflow
We do cast from uint32_t to int32_t but that should be OK everywhere.
* SHA: Always use portable arithmetic right shift
7 years ago
Gleb Mazovetskiy
e4de2ad177
Fix UB: Signed integer overflow engine.cpp:1264
7 years ago
Gleb Mazovetskiy
1ec5fa7896
Fix UB: load/store of misaligned render.cpp:130
...
Source/render.cpp:130:47: runtime error: load of misaligned address 0x7fea0df260da for type 'DWORD', which requires 4 byte alignment
Source/render.cpp:130:26: runtime error: store to misaligned address 0x7fea5796ff62 for type 'DWORD', which requires 4 byte alignment
7 years ago
Anders Jenbo
dc5bbd0c49
Implement DefWindowProc directly in MainWndProc
7 years ago