Added ability to set a title for the console

Added seed value to the maze generator
Added a title lock to the console
Added a vconsole lock that locks on any virtual console change
Changed some of the locks used to free up
This commit is contained in:
iDunnoDev
2022-12-18 11:42:58 +00:00
committed by iDunnoDev
parent c65c58a954
commit 662e3795a7
7 changed files with 175 additions and 92 deletions

View File

@ -3,43 +3,21 @@
int main(int argc, char *argv[]) {
int pid;
int selopt = getpid() % 10;
int bgcol = 0x4F00;
char title[20];
int accepttitle = 0;
int currenttitlelen = 0;
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "-bg") == 0)
{
int selopt = atoi(argv[i + 1]);
switch(selopt)
{
case 1:
bgcol = 0x1F00;
break;
case 2:
bgcol = 0x2F00;
break;
case 3:
bgcol = 0x3F00;
break;
case 4:
bgcol = 0x5F00;
break;
case 5:
bgcol = 0xF000;
break;
case 6:
bgcol = 0x8F00;
break;
case 7:
bgcol = 0x9F00;
break;
case 8:
bgcol = 0xAF00;
break;
case 9:
bgcol = 0xCF00;
break;
}
accepttitle = 0;
selopt = atoi(argv[i + 1]);
}
else if (strcmp(argv[i], "-t") == 0)
{
accepttitle = 1;
}
else if (strcmp(argv[i], "-help") == 0)
{
@ -49,6 +27,58 @@ int main(int argc, char *argv[]) {
exit();
return 0;
}
else
{
if (accepttitle)
{
if (currenttitlelen > 0)
{
title[currenttitlelen] = ' ';
currenttitlelen++;
}
for (int x = 0; x <= sizeof(argv[i]); x++)
{
title[currenttitlelen] = argv[i][x];
currenttitlelen++;
if (currenttitlelen >= 20)
{
accepttitle = 0;
break;
}
}
}
}
}
switch(selopt)
{
case 1:
bgcol = 0x1F00;
break;
case 2:
bgcol = 0x2F00;
break;
case 3:
bgcol = 0x3F00;
break;
case 4:
bgcol = 0x5F00;
break;
case 5:
bgcol = 0xF000;
break;
case 6:
bgcol = 0x8F00;
break;
case 7:
bgcol = 0x9F00;
break;
case 8:
bgcol = 0xAF00;
break;
case 9:
bgcol = 0xCF00;
break;
}
pid = fork();
@ -56,7 +86,7 @@ int main(int argc, char *argv[]) {
printf(1, "screen: fork failed\n");
}
if (pid == 0) {
if (screen(bgcol) != 0)
if (screen(title, bgcol) != 0)
{
exec("sh", argv);
printf(1, "screen: exec sh failed\n");