Duke4.net Forums: M210 - Viewing Profile - Duke4.net Forums

Jump to content

Hide message Show message
Welcome to the Duke4.net Forums!

Register an account now to get access to all board features. After you've registered and logged in, you'll be able to create topics, post replies, send and receive private messages, disable the viewing of ads and more!

Reputation: 452 My posts turn threads into gold
Group:
Members
Active Posts:
1,006 (0.29 per day)
Most Active In:
BuildGDX (513 posts)
Joined:
07-May 09
Profile Views:
14,456
Last Active:
User is offline Today, 02:19 AM
Currently:
Offline

My Information

Age:
30 years old
Birthday:
December 10, 1987
Gender:
Male Male
Location:
Moscow
Interests:
Blood, Duke3D, RR, SW...

Contact Information

E-mail:
Private
Website URL:
Website URL  http://m210.duke4.net

Latest Visitors

Topics I've Started

  1. RedneckGDX

    10 September 2018 - 11:16 AM

    Hi! I released my port of Redneck Rampage.
    At this time RR Rides Again not support, but I will add it later.
    It's also written on Java with Libgdx, but Libgdx v1.9.8. I will update my other ports to this version too in future.

    So, you can try it here
    http://m210.duke4.ne...a/52-redneckgdx
  2. BloodGDX (News & Releases)

    24 June 2017 - 12:13 PM

    I made a new release today!
    You can download it here: BloodGDX

    Changelog:
    
    1. mouse axisY is more smooth now
    2.  projectiles fly higher in the parallaxed skies
    3. checkwarping fix with non-linked upper and lower stacks
    4. voxel preload fix
    5. overheadmap broken sectors drawing fix
    6.  mario cheat without numbers will end the level
    7. loi cutscenes crash fix
    8. saves game from v1.21 support
    9. voxel loading bug fixed
    10. fixed enemies died from lava keep running infinitely in flames
    11. sector bobfloor fix (darkwood crash)
    12. HOM on smaller screensizes fix
    13. electrocution death of monster was sometimes caused by shotgun fixed
    14. fixed crash when trying to load an empty file map
    15. fixed zombie's broken attack in some cases
    16. some voxel floating in the air fix
    17. "fire" effect now working with all palettes
    18. voxels palette change fix
    19. statues(dudes) push fix
    20. items shade correct now
    
    
  3. Bugs & Problems

    19 June 2017 - 09:23 PM

    Welcome to the bugs report thread :)
    If you have a crash or bug, please, post it here with logs attach. Also you can make savegame file for quickly bug discovering :)

    2. I want to know, how it can happen:
    Dassert: nXSprite > 0 && nXSprite < kMaxXSprites
    Full stack trace: 	java.lang.Thread.getStackTrace(Unknown Source)
    	ru.m210projects.Blood.Globals.dassert(Globals.java:338)
    	ru.m210projects.Blood.View.viewDrawScreen(View.java:580)
    	ru.m210projects.Blood.Main.GameLoop(Main.java:1381)
    	ru.m210projects.Blood.Main.render(Main.java:1999)
    	com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:207)
    	com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:
    114)
    
    
    evict.MAP
    
  4. Duke Nukem Room over Room system (from Blood)

    28 December 2016 - 09:50 PM

    Hello everyone :)
    I decompiled ROR system from Blood. And for tests I include this system to eDuke32. You can see my results in this video:



    And bad news - it works in Software render only :(

    http://m210.duke4.net/Files/ror.zip - there is an eDuke32 (r3101) and ror.map for your own tests

    And question to developers: Can it fix for Polymost render?

    And if you want, you can added this system to new version of eDuke32

    
    global.c :
    
    int16_t mirrorcnt;
    int16_t MirrorType[MAXMIRRORS];
    int32_t MirrorX[MAXMIRRORS];
    int32_t MirrorY[MAXMIRRORS];
    int32_t MirrorZ[MAXMIRRORS];
    int16_t MirrorLSect[MAXMIRRORS];
    int16_t MirrorUSect[MAXMIRRORS];
    int16_t gUpperLink[MAXSECTORS], gLowerLink[MAXSECTORS];
    
    game.c
    
    extern int16_t mirrorcnt;
    extern int16_t MirrorType[MAXMIRRORS];
    extern int32_t MirrorX[MAXMIRRORS];
    extern int32_t MirrorY[MAXMIRRORS];
    extern int32_t MirrorZ[MAXMIRRORS];
    extern int16_t MirrorLSect[MAXMIRRORS];
    extern int16_t MirrorUSect[MAXMIRRORS];
    extern int16_t gUpperLink[MAXSECTORS], gLowerLink[MAXSECTORS];
    
    
    void DrawMirrors( long x, long y, long z, short ang, long horiz ) //must add this method in G_DrawRooms before drawrooms
    {
    	int i;
    	int type;
    	long  tx, ty;
    	short tang;
    
    	for( i = MAXMIRRORS - 1; i >= 0; i-- )
    	{
    		if ( gotpic[(i + MIRRORLABEL) >> 3] & (1 << ((i - MAXMIRRORS) & 7)) )
    		{
    			type = MirrorType[i];
    			if( type == 0 ) { //wall mirror
    			
    			} else
    			if ( type == 1 ) //ceiling mirror
    			{
    				int nSector = MirrorLSect[i];
    				drawrooms(x + MirrorX[i], MirrorY[i] + y, z + MirrorZ[i], ang, horiz, nSector + MAXSECTORS );
    				short oldstat = sector[nSector].floorstat;
    				sector[nSector].floorstat |= 1; //kSectorParallax
    				G_DoSpriteAnimations(x,y,ang,65536);
    				drawmasks();
    				sector[nSector].floorstat = oldstat;
    			} else
    			if ( type == 2 ) //floor mirror
    			{
    				int nSector = MirrorLSect[i];
    				drawrooms(x + MirrorX[i], MirrorY[i] + y, z + MirrorZ[i], ang, horiz, nSector + MAXSECTORS );
    				short oldstat = sector[nSector].ceilingstat;
    				sector[nSector].ceilingstat |= 1; //kSectorParallax
    				G_DoSpriteAnimations(x,y,ang,65536);
    				drawmasks();
    				sector[nSector].ceilingstat = oldstat;
    			}
    			
    			gotpic[(i + MIRRORLABEL) >> 3] &= ~(1 << ((i - MAXMIRRORS) & 7));
    			return;
    		}
    	}
    }
    
    premap.c :
    
    #define kMarkerUpperLink 4081
    #define kMarkerLowerLink 4082
    
    extern int16_t mirrorcnt;
    extern int16_t MirrorType[MAXMIRRORS];
    extern int32_t MirrorX[MAXMIRRORS];
    extern int32_t MirrorY[MAXMIRRORS];
    extern int32_t MirrorZ[MAXMIRRORS];
    extern int16_t MirrorLSect[MAXMIRRORS];
    extern int16_t MirrorUSect[MAXMIRRORS];
    extern int16_t gUpperLink[MAXSECTORS], gLowerLink[MAXSECTORS];
    
    void InitPlayerStartZones( void )
    {
    	int nSprite;
    	int nSector;
    	// clear link values
    	for ( nSector = 0; nSector < MAXSECTORS; nSector++ )
    	{
    		gUpperLink[nSector] = -1;
    		gLowerLink[nSector] = -1;
    	}
    
    	for ( nSprite = 0; nSprite < MAXSPRITES; nSprite++ )
    	{
    		if (sprite[nSprite].statnum < MAXSTATUS)
    		{
    			spritetype *pSprite = &sprite[nSprite];
    		
    			
    			
    				switch( pSprite->picnum )
    				{
    					case kMarkerUpperLink:
    						gUpperLink[pSprite->sectnum] = (short)nSprite;
    						initprintf("UpperLink\n");
    						break;
    
    					case kMarkerLowerLink:
    						gLowerLink[pSprite->sectnum] = (short)nSprite;
    						initprintf("LowerLink\n");
    						break;
    				}
    			
    		}
    	}
    
    	// verify links have mates and connect them
    	int nFrom;
    	for ( nFrom = 0; nFrom < MAXSECTORS; nFrom++)
    	{
    		if ( gUpperLink[nFrom] >= 0 )
    		{
    			spritetype *pFromSprite = &sprite[gUpperLink[nFrom]];
    			
    			int nID = pFromSprite->hitag;
    			int nTo;
    			for ( nTo = 0; nTo < MAXSECTORS; nTo++)
    			{
    				if ( gLowerLink[nTo] >= 0 )
    				{
    					spritetype *pToSprite = &sprite[gLowerLink[nTo]];
    					
    
    					if ( pToSprite->hitag == nID )
    					{
    						initprintf("Connecting people\n");
    						pFromSprite->owner = (short)gLowerLink[nTo];
    						pToSprite->owner = (short)gUpperLink[nFrom];
    					}
    				}
    			}
    		}
    	}
    }
    
    
    void InitMirrors( void ) //I added this method at the end of G_EnterLevel()
    {
    	InitPlayerStartZones(); //methods name called as Blood, it's just a part of code, which need for ROR works 
    	
    	int i, j;
    	
    	//Scan wall tags
    	mirrorcnt = 0;
    	tilesizx[MIRROR] = 0;
    	tilesizy[MIRROR] = 0;
    	for( i = 0; i < MAXMIRRORS; i++)
    	{
    		tilesizx[i + MIRRORLABEL] = 0;
    		tilesizy[i + MIRRORLABEL] = 0;
    	}
    
    	for( i = numsectors - 1; i >= 0; i--)
    	{
    		if (mirrorcnt == MAXMIRRORS)
    		{
    			initprintf("Maximum mirror count reached.\n");
    			break;
    		}
    
    		if ( sector[i].floorpicnum == MIRROR )
    		{
    			int nUpper = gUpperLink[i];
    			if(nUpper >= 0) {
    				int nLower = sprite[nUpper].owner;
    
    				initprintf("Initializing floor mirror for sector\n");
    				MirrorType[mirrorcnt] = 2;
    				MirrorX[mirrorcnt] = sprite[nLower].x - sprite[nUpper].x;
    				MirrorY[mirrorcnt] = sprite[nLower].y - sprite[nUpper].y;
    				MirrorZ[mirrorcnt] = sprite[nLower].z - sprite[nUpper].z;
    				MirrorLSect[mirrorcnt] = sprite[nLower].sectnum;
    				MirrorUSect[mirrorcnt] = i;
    				sector[i].floorpicnum = (short) (MIRRORLABEL + mirrorcnt++);
    				initprintf("Initializing ceiling mirror for sector\n");
    				MirrorType[mirrorcnt] = 1;
    				MirrorX[mirrorcnt] = sprite[nUpper].x - sprite[nLower].x;
    				MirrorY[mirrorcnt] = sprite[nUpper].y - sprite[nLower].y;
    				MirrorZ[mirrorcnt] = sprite[nUpper].z - sprite[nLower].z;
    				MirrorLSect[mirrorcnt] = i;
    				MirrorUSect[mirrorcnt] = sprite[nLower].sectnum;
    				sector[sprite[nLower].sectnum].ceilingpicnum = (short) (MIRRORLABEL + mirrorcnt);
    				mirrorcnt++;
    			}
    		}
    	}
    
    	initprintf("%d mirrors initialized\n", mirrorcnt);
    }
    
    



    I hope this code helps us to optimize ROR for Polymost
  5. eDoomTC and my map converter

    11 January 2016 - 02:56 AM

    Hi all! Did you remember my DoomTC? :) At last month I worked on map converter from Doom wad files to Duke3D and now I can said, that I completed work on this converter! My converter can make doom's maps almost without editing in mapster32, because my program also converting doors and another doom effects as lights etc. All converted map of Doom, Doom2, Doom2Plutonia and Doom2TNT I put it to my old DoomTC and you can play those maps too :) My converted understand Doom/Doom2 wad files and also Heretic wads and Hexen wads (geometry only, without textures) So, new eDoomTC includes 132 playable maps, launcher like as BloodCM launcher. Enemies was "almost" disabled, therefore this is a "turist" mod :)

    I don't know, will this mod is interested to somebody, therefore I don't want to continue this mod. But anyway, this is a mod with 132 maps :)

    eDoomTC

    So, I released this, and I can continue works with BloodCM now :)

Comments

Page 1 of 1
  1. Photo 25 May 2014 - 07:26
    Hy M210, it's a very Long time since the last time we talked.
    I found amny Blood models (previewed on the Transfusion Forum) in a Mod called "PsychoPhobia" on ModDB: http://www.moddb.com/mods/psychophobia
    Cheers, Besli
Page 1 of 1

All copyrights and trademarks are property of their respective owners. Instead of reading this text, you could be playing Ion Maiden! ;) © 2018 Voidpoint, LLC

Enter your sign in name and password


Sign in options