Code: Select all
sec = self.CurSector;
index = sec.index();
Moderator: GZDoom Developers
Code: Select all
sec = self.CurSector;
index = sec.index();
Code: Select all
SectorTagIterator sec_tags = level.CreateSectorTagIterator(tag number);
int sector_id;
while(sector_id = sec_tags.next() )
{
sector_id is a number of a sector in level.sectors struct
}
Code: Select all
int get_sector_tag(sector s)
{
int sector_tag = -1;
for(int i = 0; i < 65536/*or what maximum tags index are?*/; i++)
{
SectorTagIterator sec_tags = level.CreateSectorTagIterator(i);
int sector_id = -1;
while(sector_id = sec_tags.next() )
{
if(sector_id == s.index())
{
sector_tag = i;
break;
}
}
if(sector_tag >= 0)
break;
}
return sector_tag;
}
Apeirogon wrote:Extremely inefficient from the point of performance, but should workCode: Select all
int get_sector_tag(sector s) { int sector_tag = -1; for(int i = 0; i < 65536/*or what maximum tags index are?*/; i++) { SectorTagIterator sec_tags = level.CreateSectorTagIterator(i); int sector_id = -1; while(sector_id = sec_tags.next() ) { if(sector_id == s.index()) { sector_tag = i; break; } } if(sector_tag >= 0) break; } return sector_tag; }
Code: Select all
version 4.4.2
Class newzombie : zombieman replaces zombieman {
sector sec;
int tag;
int get_sector_tag(sector s){
int sector_tag = -1;
for(int i = 0; i < 100/*or what maximum tags index are?*/; i++)
{
SectorTagIterator sec_tags = level.CreateSectorTagIterator(i);
int sector_id = -1;
while(sector_id = sec_tags.next() )
{
if(sector_id == s.index())
{
sector_tag = i;
break;
}
}
if(sector_tag >= 0)
break;
}
return sector_tag;
}
states {
Pain:
PLAY A 1 NODELAY{
sec = self.CurSector;
tag = get_sector_tag(sec);
A_LOGint(tag);
}
Goto Super::Pain;
}
}
Code: Select all
int get_sector_tag(sector s)
{
int sector_tag = -15;
for(int i = 1; i < 100/*or what maximum tags index are?*/; i++)
{
SectorTagIterator sec_tags = level.CreateSectorTagIterator(i);
int sector_id = -15;
while( sector_id = sec_tags.next() )
{
if(sector_id < 0)
break;
if(sector_id == s.index())
{
console.printf("sector found");
sector_tag = i;
break;
}
}
if(sector_tag >= 0)
break;
}
return sector_tag;
}