INST flood fill change so that vertical conduction is only prevented for 1px wire crossings. Needs thorough testing
Fixes #129 , and prevents INST diodes when using a 2px vertical crossing a 1px horizontal.
This commit is contained in:
parent
b83043e2a6
commit
526e93204a
@ -602,9 +602,9 @@ int Simulation::FloodINST(int x, int y, int fullc, int cm)
|
||||
{
|
||||
if ((pmap[y-1][x]&0xFF)==cm && !parts[pmap[y-1][x]>>8].life)
|
||||
{
|
||||
if (x==x1 || x==x2 || y>=YRES-CELL-1 || !PMAP_CMP_CONDUCTIVE(pmap[y+1][x], cm))
|
||||
if (x==x1 || x==x2 || y>=YRES-CELL-1 || !PMAP_CMP_CONDUCTIVE(pmap[y+1][x], cm) || PMAP_CMP_CONDUCTIVE(pmap[y+1][x+1], cm) || PMAP_CMP_CONDUCTIVE(pmap[y+1][x-1], cm))
|
||||
{
|
||||
// if at the end of a horizontal section, or if it's a T junction
|
||||
// if at the end of a horizontal section, or if it's a T junction or not a 1px wire crossing
|
||||
coord_stack[coord_stack_size][0] = x;
|
||||
coord_stack[coord_stack_size][1] = y-1;
|
||||
coord_stack_size++;
|
||||
@ -641,9 +641,9 @@ int Simulation::FloodINST(int x, int y, int fullc, int cm)
|
||||
{
|
||||
if ((pmap[y+1][x]&0xFF)==cm && !parts[pmap[y+1][x]>>8].life)
|
||||
{
|
||||
if (x==x1 || x==x2 || y<0 || !PMAP_CMP_CONDUCTIVE(pmap[y-1][x], cm))
|
||||
if (x==x1 || x==x2 || y<0 || !PMAP_CMP_CONDUCTIVE(pmap[y-1][x], cm) || PMAP_CMP_CONDUCTIVE(pmap[y-1][x+1], cm) || PMAP_CMP_CONDUCTIVE(pmap[y-1][x-1], cm))
|
||||
{
|
||||
// if at the end of a horizontal section, or if it's a T junction
|
||||
// if at the end of a horizontal section, or if it's a T junction or not a 1px wire crossing
|
||||
coord_stack[coord_stack_size][0] = x;
|
||||
coord_stack[coord_stack_size][1] = y+1;
|
||||
coord_stack_size++;
|
||||
|
Reference in New Issue
Block a user