mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Merge public master
This commit is contained in:
		
						commit
						a2d11a61f1
					
				
					 6 changed files with 40 additions and 28 deletions
				
			
		|  | @ -17,9 +17,12 @@ Debian testing GCC: | ||||||
|     name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-testing-gcc" |     name: "$CI_PROJECT_PATH_SLUG-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA-testing-gcc" | ||||||
| 
 | 
 | ||||||
|   variables: |   variables: | ||||||
|     CC: gcc |     CC: /usr/bin/x86_64-linux-gnu-gcc | ||||||
|     CXX: g++ |     CXX: /usr/bin/x86_64-linux-gnu-g++ | ||||||
|     LDFLAGS: -Wl,-fuse-ld=gold |     OBJCOPY: /usr/bin/x86_64-linux-gnu-objcopy | ||||||
|  |     OBJDUMP: /usr/bin/x86_64-linux-gnu-objdump | ||||||
|  |     PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig | ||||||
|  |     LD: /usr/bin/x86_64-linux-gnu-ld | ||||||
| 
 | 
 | ||||||
|   script: |   script: | ||||||
|     - - | |     - - | | ||||||
|  |  | ||||||
|  | @ -5,6 +5,8 @@ Windows x64: | ||||||
| 
 | 
 | ||||||
|   when: manual |   when: manual | ||||||
| 
 | 
 | ||||||
|  |   timeout: 2h | ||||||
|  | 
 | ||||||
|   allow_failure: true |   allow_failure: true | ||||||
| 
 | 
 | ||||||
|   artifacts: |   artifacts: | ||||||
|  |  | ||||||
|  | @ -5,6 +5,8 @@ Windows x86: | ||||||
| 
 | 
 | ||||||
|   when: on_success |   when: on_success | ||||||
| 
 | 
 | ||||||
|  |   timeout: 2h | ||||||
|  | 
 | ||||||
|   cache: |   cache: | ||||||
|     - key: ccache-$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG |     - key: ccache-$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG | ||||||
|       fallback_keys: |       fallback_keys: | ||||||
|  |  | ||||||
|  | @ -1762,7 +1762,7 @@ static void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom | ||||||
| 						if (rover->alpha < 256 || rover->blend) | 						if (rover->alpha < 256 || rover->blend) | ||||||
| 						{ | 						{ | ||||||
| 							blendmode = HWR_GetBlendModeFlag(rover->blend); | 							blendmode = HWR_GetBlendModeFlag(rover->blend); | ||||||
| 							Surf.PolyColor.s.alpha = (UINT8)(rover->alpha-1); | 							Surf.PolyColor.s.alpha = max(0, min(rover->alpha, 255)); | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
|  | @ -1891,7 +1891,7 @@ static void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom | ||||||
| 						if (rover->alpha < 256 || rover->blend) | 						if (rover->alpha < 256 || rover->blend) | ||||||
| 						{ | 						{ | ||||||
| 							blendmode = HWR_GetBlendModeFlag(rover->blend); | 							blendmode = HWR_GetBlendModeFlag(rover->blend); | ||||||
| 							Surf.PolyColor.s.alpha = (UINT8)(rover->alpha-1); | 							Surf.PolyColor.s.alpha = max(0, min(rover->alpha, 255)); | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
|  | @ -2636,7 +2636,7 @@ static void HWR_Subsector(size_t num) | ||||||
| 										   false, | 										   false, | ||||||
| 					                       *rover->bottomheight, | 					                       *rover->bottomheight, | ||||||
| 					                       *gl_frontsector->lightlist[light].lightlevel, | 					                       *gl_frontsector->lightlist[light].lightlevel, | ||||||
| 					                       rover->alpha-1, rover->master->frontsector, blendmode, | 										   max(0, min(rover->alpha, 255)), rover->master->frontsector, blendmode, | ||||||
| 					                       false, *gl_frontsector->lightlist[light].extra_colormap); | 					                       false, *gl_frontsector->lightlist[light].extra_colormap); | ||||||
| 				} | 				} | ||||||
| 				else | 				else | ||||||
|  | @ -2684,7 +2684,7 @@ static void HWR_Subsector(size_t num) | ||||||
| 											true, | 											true, | ||||||
| 					                        *rover->topheight, | 					                        *rover->topheight, | ||||||
| 					                        *gl_frontsector->lightlist[light].lightlevel, | 					                        *gl_frontsector->lightlist[light].lightlevel, | ||||||
| 					                        rover->alpha-1, rover->master->frontsector, blendmode, | 											max(0, min(rover->alpha, 255)), rover->master->frontsector, blendmode, | ||||||
| 					                        false, *gl_frontsector->lightlist[light].extra_colormap); | 					                        false, *gl_frontsector->lightlist[light].extra_colormap); | ||||||
| 				} | 				} | ||||||
| 				else | 				else | ||||||
|  |  | ||||||
|  | @ -724,6 +724,8 @@ static int player_get(lua_State *L) | ||||||
| 		lua_pushinteger(L, plr->griefWarned);		 | 		lua_pushinteger(L, plr->griefWarned);		 | ||||||
| 	else if (fastcmp(field,"splitscreenindex")) | 	else if (fastcmp(field,"splitscreenindex")) | ||||||
| 		lua_pushinteger(L, plr->splitscreenindex); | 		lua_pushinteger(L, plr->splitscreenindex); | ||||||
|  | 	else if (fastcmp(field,"whip")) | ||||||
|  | 		LUA_PushUserdata(L, plr->whip, META_MOBJ); | ||||||
| #ifdef HWRENDER | #ifdef HWRENDER | ||||||
| 	else if (fastcmp(field,"fovadd")) | 	else if (fastcmp(field,"fovadd")) | ||||||
| 		lua_pushfixed(L, plr->fovadd); | 		lua_pushfixed(L, plr->fovadd); | ||||||
|  | @ -1321,6 +1323,13 @@ static int player_set(lua_State *L) | ||||||
| 		plr->griefWarned = luaL_checkinteger(L, 3); | 		plr->griefWarned = luaL_checkinteger(L, 3); | ||||||
| 	else if (fastcmp(field,"splitscreenindex")) | 	else if (fastcmp(field,"splitscreenindex")) | ||||||
| 		return NOSET; | 		return NOSET; | ||||||
|  | 	else if (fastcmp(field,"whip")) | ||||||
|  | 	{ | ||||||
|  | 		mobj_t *mo = NULL; | ||||||
|  | 		if (!lua_isnil(L, 3)) | ||||||
|  | 			mo = *((mobj_t **)luaL_checkudata(L, 3, META_MOBJ)); | ||||||
|  | 		P_SetTarget(&plr->whip, mo); | ||||||
|  | 	} | ||||||
| #ifdef HWRENDER | #ifdef HWRENDER | ||||||
| 	else if (fastcmp(field,"fovadd")) | 	else if (fastcmp(field,"fovadd")) | ||||||
| 		plr->fovadd = luaL_checkfixed(L, 3); | 		plr->fovadd = luaL_checkfixed(L, 3); | ||||||
|  |  | ||||||
							
								
								
									
										38
									
								
								src/p_spec.c
									
										
									
									
									
								
							
							
						
						
									
										38
									
								
								src/p_spec.c
									
										
									
									
									
								
							|  | @ -3883,19 +3883,18 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha | ||||||
| 						foundrover = true; | 						foundrover = true; | ||||||
| 
 | 
 | ||||||
| 						// If fading an invisible FOF whose render flags we did not yet set,
 | 						// If fading an invisible FOF whose render flags we did not yet set,
 | ||||||
| 						// initialize its alpha to 1
 | 						// initialize its alpha to 0 for relative alpha calculation
 | ||||||
| 						// for relative alpha calc
 |  | ||||||
| 						if (!(args[3] & TMST_DONTDOTRANSLUCENT) &&      // do translucent
 | 						if (!(args[3] & TMST_DONTDOTRANSLUCENT) &&      // do translucent
 | ||||||
| 							(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | 							(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | ||||||
| 							!(rover->spawnflags & FOF_RENDERSIDES) && | 							!(rover->spawnflags & FOF_RENDERSIDES) && | ||||||
| 							!(rover->spawnflags & FOF_RENDERPLANES) && | 							!(rover->spawnflags & FOF_RENDERPLANES) && | ||||||
| 							!(rover->fofflags & FOF_RENDERALL)) | 							!(rover->fofflags & FOF_RENDERALL)) | ||||||
| 							rover->alpha = 1; | 							rover->alpha = 0; | ||||||
| 
 | 
 | ||||||
| 						P_RemoveFakeFloorFader(rover); | 						P_RemoveFakeFloorFader(rover); | ||||||
| 						P_FadeFakeFloor(rover, | 						P_FadeFakeFloor(rover, | ||||||
| 							rover->alpha, | 							rover->alpha, | ||||||
| 							max(1, min(256, (args[3] & TMST_RELATIVE) ? rover->alpha + destvalue : destvalue)), | 							max(0, min(255, (args[3] & TMST_RELATIVE) ? rover->alpha + destvalue : destvalue)), | ||||||
| 							0,                                         // set alpha immediately
 | 							0,                                         // set alpha immediately
 | ||||||
| 							false, NULL,                               // tic-based logic
 | 							false, NULL,                               // tic-based logic
 | ||||||
| 							false,                                     // do not handle FOF_EXISTS
 | 							false,                                     // do not handle FOF_EXISTS
 | ||||||
|  | @ -3969,19 +3968,18 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha | ||||||
| 						else | 						else | ||||||
| 						{ | 						{ | ||||||
| 							// If fading an invisible FOF whose render flags we did not yet set,
 | 							// If fading an invisible FOF whose render flags we did not yet set,
 | ||||||
| 							// initialize its alpha to 1
 | 							// initialize its alpha to 0 for relative alpha calculation
 | ||||||
| 							// for relative alpha calc
 |  | ||||||
| 							if (!(args[4] & TMFT_DONTDOTRANSLUCENT) &&      // do translucent
 | 							if (!(args[4] & TMFT_DONTDOTRANSLUCENT) &&      // do translucent
 | ||||||
| 								(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | 								(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | ||||||
| 								!(rover->spawnflags & FOF_RENDERSIDES) && | 								!(rover->spawnflags & FOF_RENDERSIDES) && | ||||||
| 								!(rover->spawnflags & FOF_RENDERPLANES) && | 								!(rover->spawnflags & FOF_RENDERPLANES) && | ||||||
| 								!(rover->fofflags & FOF_RENDERALL)) | 								!(rover->fofflags & FOF_RENDERALL)) | ||||||
| 								rover->alpha = 1; | 								rover->alpha = 0; | ||||||
| 
 | 
 | ||||||
| 							P_RemoveFakeFloorFader(rover); | 							P_RemoveFakeFloorFader(rover); | ||||||
| 							P_FadeFakeFloor(rover, | 							P_FadeFakeFloor(rover, | ||||||
| 								rover->alpha, | 								rover->alpha, | ||||||
| 								max(1, min(256, (args[4] & TMFT_RELATIVE) ? rover->alpha + destvalue : destvalue)), | 								max(0, min(255, (args[4] & TMFT_RELATIVE) ? rover->alpha + destvalue : destvalue)), | ||||||
| 								0,                                         // set alpha immediately
 | 								0,                                         // set alpha immediately
 | ||||||
| 								false, NULL,                               // tic-based logic
 | 								false, NULL,                               // tic-based logic
 | ||||||
| 								!(args[4] & TMFT_DONTDOEXISTS),      // do not handle FOF_EXISTS
 | 								!(args[4] & TMFT_DONTDOEXISTS),      // do not handle FOF_EXISTS
 | ||||||
|  | @ -8557,15 +8555,14 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 sourcevalue, INT16 destval | ||||||
| 	if (rover->master->special == 258) // Laser block
 | 	if (rover->master->special == 258) // Laser block
 | ||||||
| 		return false; | 		return false; | ||||||
| 
 | 
 | ||||||
| 	// If fading an invisible FOF whose render flags we did not yet set,
 | 	// If fading an invisible FOF whose render flags we did not yet set, initialize its alpha to 0
 | ||||||
| 	// initialize its alpha to 1
 |  | ||||||
| 	if (dotranslucent && | 	if (dotranslucent && | ||||||
| 		(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | 		(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | ||||||
| 		!(rover->fofflags & FOF_FOG) && // do not include fog
 | 		!(rover->fofflags & FOF_FOG) && // do not include fog
 | ||||||
| 		!(rover->spawnflags & FOF_RENDERSIDES) && | 		!(rover->spawnflags & FOF_RENDERSIDES) && | ||||||
| 		!(rover->spawnflags & FOF_RENDERPLANES) && | 		!(rover->spawnflags & FOF_RENDERPLANES) && | ||||||
| 		!(rover->fofflags & FOF_RENDERALL)) | 		!(rover->fofflags & FOF_RENDERALL)) | ||||||
| 		rover->alpha = 1; | 		rover->alpha = 0; | ||||||
| 
 | 
 | ||||||
| 	if (fadingdata) | 	if (fadingdata) | ||||||
| 		alpha = fadingdata->alpha; | 		alpha = fadingdata->alpha; | ||||||
|  | @ -8651,7 +8648,7 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 sourcevalue, INT16 destval | ||||||
| 	{ | 	{ | ||||||
| 		if (doexists && !(rover->spawnflags & FOF_BUSTUP)) | 		if (doexists && !(rover->spawnflags & FOF_BUSTUP)) | ||||||
| 		{ | 		{ | ||||||
| 			if (alpha <= 1) | 			if (alpha <= 0) | ||||||
| 				rover->fofflags &= ~FOF_EXISTS; | 				rover->fofflags &= ~FOF_EXISTS; | ||||||
| 			else | 			else | ||||||
| 				rover->fofflags |= FOF_EXISTS; | 				rover->fofflags |= FOF_EXISTS; | ||||||
|  | @ -8663,7 +8660,7 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 sourcevalue, INT16 destval | ||||||
| 
 | 
 | ||||||
| 		if (dotranslucent && !(rover->fofflags & FOF_FOG)) | 		if (dotranslucent && !(rover->fofflags & FOF_FOG)) | ||||||
| 		{ | 		{ | ||||||
| 			if (alpha >= 256) | 			if (alpha >= 255) | ||||||
| 			{ | 			{ | ||||||
| 				if (!(rover->fofflags & FOF_CUTSOLIDS) && | 				if (!(rover->fofflags & FOF_CUTSOLIDS) && | ||||||
| 					(rover->spawnflags & FOF_CUTSOLIDS)) | 					(rover->spawnflags & FOF_CUTSOLIDS)) | ||||||
|  | @ -8763,11 +8760,11 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 sourcevalue, INT16 destval | ||||||
| 		else // clamp fadingdata->alpha to software's alpha levels
 | 		else // clamp fadingdata->alpha to software's alpha levels
 | ||||||
| 		{ | 		{ | ||||||
| 			if (alpha < 12) | 			if (alpha < 12) | ||||||
| 				rover->alpha = destvalue < 12 ? destvalue : 1; // Don't even draw it
 | 				rover->alpha = destvalue < 12 ? destvalue : 0; // Don't even draw it
 | ||||||
| 			else if (alpha < 38) | 			else if (alpha < 38) | ||||||
| 				rover->alpha = destvalue >= 12 && destvalue < 38 ? destvalue : 25; | 				rover->alpha = destvalue >= 12 && destvalue < 38 ? destvalue : 25; | ||||||
| 			else if (alpha < 64) | 			else if (alpha < 64) | ||||||
| 				rover->alpha = destvalue >=38 && destvalue < 64 ? destvalue : 51; | 				rover->alpha = destvalue >= 38 && destvalue < 64 ? destvalue : 51; | ||||||
| 			else if (alpha < 89) | 			else if (alpha < 89) | ||||||
| 				rover->alpha = destvalue >= 64 && destvalue < 89 ? destvalue : 76; | 				rover->alpha = destvalue >= 64 && destvalue < 89 ? destvalue : 76; | ||||||
| 			else if (alpha < 115) | 			else if (alpha < 115) | ||||||
|  | @ -8783,7 +8780,7 @@ static boolean P_FadeFakeFloor(ffloor_t *rover, INT16 sourcevalue, INT16 destval | ||||||
| 			else if (alpha < 243) | 			else if (alpha < 243) | ||||||
| 				rover->alpha = destvalue >= 217 && destvalue < 243 ? destvalue : 230; | 				rover->alpha = destvalue >= 217 && destvalue < 243 ? destvalue : 230; | ||||||
| 			else // Opaque
 | 			else // Opaque
 | ||||||
| 				rover->alpha = destvalue >= 243 ? destvalue : 256; | 				rover->alpha = destvalue >= 243 ? destvalue : 255; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -8813,17 +8810,16 @@ static void P_AddFakeFloorFader(ffloor_t *rover, size_t sectornum, size_t ffloor | ||||||
| { | { | ||||||
| 	fade_t *d; | 	fade_t *d; | ||||||
| 
 | 
 | ||||||
| 	// If fading an invisible FOF whose render flags we did not yet set,
 | 	// If fading an invisible FOF whose render flags we did not yet set, initialize its alpha to 0
 | ||||||
| 	// initialize its alpha to 1
 |  | ||||||
| 	if (dotranslucent && | 	if (dotranslucent && | ||||||
| 		(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | 		(rover->spawnflags & FOF_NOSHADE) && // do not include light blocks, which don't set FOF_NOSHADE
 | ||||||
| 		!(rover->spawnflags & FOF_RENDERSIDES) && | 		!(rover->spawnflags & FOF_RENDERSIDES) && | ||||||
| 		!(rover->spawnflags & FOF_RENDERPLANES) && | 		!(rover->spawnflags & FOF_RENDERPLANES) && | ||||||
| 		!(rover->fofflags & FOF_RENDERALL)) | 		!(rover->fofflags & FOF_RENDERALL)) | ||||||
| 		rover->alpha = 1; | 		rover->alpha = 0; | ||||||
| 
 | 
 | ||||||
| 	// already equal, nothing to do
 | 	// already equal, nothing to do
 | ||||||
| 	if (rover->alpha == max(1, min(256, relative ? rover->alpha + destvalue : destvalue))) | 	if (rover->alpha == max(0, min(255, relative ? rover->alpha + destvalue : destvalue))) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	d = Z_LevelPoolCalloc(sizeof (*d)); | 	d = Z_LevelPoolCalloc(sizeof (*d)); | ||||||
|  | @ -8836,7 +8832,7 @@ static void P_AddFakeFloorFader(ffloor_t *rover, size_t sectornum, size_t ffloor | ||||||
| 	d->ffloornum = (UINT32)ffloornum; | 	d->ffloornum = (UINT32)ffloornum; | ||||||
| 
 | 
 | ||||||
| 	d->alpha = d->sourcevalue = rover->alpha; | 	d->alpha = d->sourcevalue = rover->alpha; | ||||||
| 	d->destvalue = max(1, min(256, relative ? rover->alpha + destvalue : destvalue)); // rover->alpha is 1-256
 | 	d->destvalue = max(0, min(255, relative ? rover->alpha + destvalue : destvalue)); // rover->alpha is 0-255
 | ||||||
| 
 | 
 | ||||||
| 	if (ticbased) | 	if (ticbased) | ||||||
| 	{ | 	{ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Eidolon
						Eidolon