Optimized the code a little bit, propcase page = 30 displays all changes, propcase page = 31 hides known ones. Just exchange the standard propcase display to following code in gui.c:
int pcase[281];
static int pcase_old[281];
int pc_num[14];
int pc_old[14];
int pc_new[14];
static int pc_line=0;
static int fd;
#define NUM_HIDE 38
int hide_pc[NUM_HIDE] = {5 , 6, 8, 21, 57, 60, 91, 92, 94, 95,
102,107,117,141,143,145,149,155,166,169,
184,195,207,213,218,220,223,224,268,269,
277, 26,264, 49, 50,262, 23, 79};
if (debug_propcase_show){
if (!fd) {
fd = open("A/PropCases.txt", O_WRONLY|O_CREAT, 0777);
for (i=0;i<281;i++) pcase_old[i]=0;
}
if (!fd) return;
if (debug_propcase_page>29) {
for (i=0;i<281;i++) {
get_property_case(i, &pcase[i], 4);
// property case changed, then print on screen and write to file
p=0;
if (pcase_old[i]!=pcase[i]) {
len=sprintf(sbuf, "%3d: %d -> %d\n", i, pcase_old[i],pcase[i]);
write(fd, sbuf, len);
// hide known property cases, don't display them on screen
if (debug_propcase_page==31) for (r=0;r<NUM_HIDE;r++) if (i==hide_pc[r]) p=1;
// if unknown print store property case for display, if more than 14 change, see written file
if (p==0) {
pc_num[pc_line]=i;
pc_old[pc_line]=pcase_old[i];
pc_new[pc_line]=pcase[i];
pc_line=(pc_line+1)%14;
}
}
pcase_old[i]=pcase[i];
}
// now print the array of changing property cases on screen
for (r=0;r<14;r++) {
// Mark the last change with a *
if (r==((pc_line+13)%14))
len=sprintf(sbuf, "* %3d: %d -> %d ", pc_num[r], pc_old[r],pc_new[r]);
else
len=sprintf(sbuf, " %3d: %d -> %d ", pc_num[r], pc_old[r],pc_new[r]);
sbuf[25]=0; draw_string(64,16+16*r,sbuf, conf.osd_color);
}
} else {
for (i=0;i<10;i++){
r = 0;
p = debug_propcase_page*10+i;
get_property_case(p, &r, 4);
sprintf(sbuf, "%3d: %d ", p, r);sbuf[20]=0;
draw_string(64,16+16*i,sbuf, conf.osd_color);
}
}
} else {
if (fd) close(fd);
fd=0;
}