
Reputation: 515
My posts turn threads into gold
- Group:
- Members
- Active Posts:
- 1,087 (0.3 per day)
- Most Active In:
- BuildGDX (587 posts)
- Joined:
- 07-May 09
- Profile Views:
- 16,161
- Last Active:
Today, 08:22 AM
- Currently:
- Offline
My Information
- Age:
- 31 years old
- Birthday:
- December 10, 1987
- Gender:
-
Male
- Location:
- Moscow
- Interests:
- Blood, Duke3D, RR, SW...
Contact Information
- E-mail:
- Private
- Website URL:
-
http://m210.duke4.net
Latest Visitors
-
Pest
18 Feb 2019 - 01:06 -
PH4N70MMm
16 Feb 2019 - 17:57 -
Nancsi
15 Feb 2019 - 12:17 -
TheDragonLiner
13 Feb 2019 - 11:04 -
wafee
03 Feb 2019 - 00:07
Topics I've Started
-
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 -
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
-
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
-
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 -
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
Besli
25 May 2014 - 07:26I found amny Blood models (previewed on the Transfusion Forum) in a Mod called "PsychoPhobia" on ModDB: http://www.moddb.com/mods/psychophobia
Cheers, Besli