Jump to content

tempun2

Members
  • Posts

    5
  • Joined

  • Last visited

About tempun2

  • Rank
    New Member
    New Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. OK. But does the Infernis bug I described above occur there also?
  2. Well, I've tried playing Sector 1 twice on the new build and twice had an Infernis somehow get through the locked door. Maybe it happens on the old build too, Basically, stand in the secret area at position 18 10, next to the secret door in secret area, and you'll hear the Infernis activation sound. This is, maybe, normal (can't test in Melange, it has no sound) - what isn't is meeting the Infernis before the first passcode locked door (at 4 5). It should not be able to get through. Can't repro on 0.2.1, but that would need the Infernis to move west and the east-moving bug makes this unlikely. In my 2 playthroughs of BREW version on Melange, this didn't happen either, but I haven't tried very hard. Perhaps it's related, but if you move near the green door in Sector 1, you'll hear the cacodemon activation sound (it shouldn't be able to see you, but Maybe BREW had this bug as well.)
  3. Seems to work correctly for me, at least with respect to that problem. I'd suggest replacing those 9999's in the quote fragment with closestPathDist so as to have magic constants in one place and for consistency with the rest of the code, but it's your choice.
  4. I think Doom RPG has its own PRNG (in DoomRPG.c in the published code). I've noticed that Entity.c:Entity_aiGoal_MOVE() is buggy. AFAICT, it is intended to move monster towards its target, picking a random direction if two ones would place the monster equally close to the target. closestPathDist = 9999; /* [irrelevant code setting i10 omitted] */ if (Entity_checkLineOfSight(entity, srcX, srcY, srcX + 64, srcY, i10)) { /* AFAIU checks if monster can move there */ pathDist = Entity_calcPath(entity, sX + 1, sY, dX, dY, 0, i10); if (pathDist < closestPathDist) { /* always true! */ closestPathDist = pathDist; entity->visitOrder[entity->visitOrderCount++] = 2; } else if (pathDist == closestPathDist) { entity->visitOrder[entity->visitOrderCount++] = 2; } } Entity_calcPath() returns some kind of pseudo-distance, which is smaller than 9999. AFAIU, this means that the east direction, if the monster can move there, is always added to the entity->visitOrder[] array. Then one direction is picked out of entity->visitOrder[] array pseudo-randomly: switch (entity->visitOrder[(DoomRPG_randNextByte(&entity->doomRpg->random) & 3) % entity->visitOrderCount]) { /* [code] */ case 2: entity->monster->x = srcX + 64; entity->monster->y = srcY; break; /* [more stuff] */ AFAIU, the monster moving east happens with probability of about 1/2 - even if it would move monster away from you. Which seems to actually happen.
  5. The monsters seem to move randomly in many situations in this port, unlike both J2ME and BREW (when it doesn't crash) version where they move towards you. If they can attack you, they're usually normal. But especially if you're waiting around the corner, in this port they seem to move randomly (including away from you). Yes, in J2ME they do occasionally move away, but nowhere that often.
×
×
  • Create New...