eso es por que te has inventado una nueva estructura de control de flujo
int pantallallavespuertaventana{
/*codigo
...
...
...*/
no puedes poner esto en el código si quieres que se repita el código al llegar al caso 2 tienes que hacerlo de forma diferente, yo lo he echo de la siguiente manera
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
/*variables y constantes*/
int opcionnombreusuario;
char nombre[20];
int opcionllavepuertaventana;
int posesionllave = 0;
/*programa principal*/
int main (int argc, char* argv[]){
/*titulo*/
printf ("Juego\n\n");
Sleep(200);
/*seleccion de nombre y confirmacion de este*/
do{
printf ("\n\nInserte un nombre de usuario en minisculas y pulse Intro: ");
std::cin >> nombre;
fflush (stdin);
printf ("\nEntonces tu nombre es %s?" ,nombre);
printf ("\n1-Si\n2-No\n");
std::cin >> opcionnombreusuario;
fflush (stdin);
system("cls");
}while (opcionnombreusuario != 1);
/*planteamiento llave ventana puerta*/
printf ("\nSaludos %s, bienvenido a mi lamentable aventura de texto, espero que disfrutes!", nombre);
Sleep (2000);
system("cls");
/* do while para que se repita la pantalla mientras no tenga la llave */
do{
printf("\nacabas de aparecer en una habitacion extrana, puedes ver una ventana con rejas, una puerta y una llave.\nQue escojes?\n\n1-Ventana\n2-Puerta\n3-Investiga\n");
std::cin >> opcionllavepuertaventana ;
fflush (stdin);
/*Switch que da sentencias para las opciones de la primera pantalla */
switch (opcionllavepuertaventana){
case 1: printf ("Vaya, parece que la ventana tiene rejas, es imposible salir por aqui.");
Sleep (3000);
system ("cls");
break;
case 2: if (posesionllave != 1)
{
printf ("Que mal, parece que la cerradura necesita una llave");
Sleep (3000);
system ("cls");
}
if (posesionllave == 1){
printf ("Has abierto la puerta con la llave");
Sleep (3000);
}
break;
case 3: printf ("Investigando por el suelo te has encontrado una llave! Me pregunto como debe haber salido el que se la dejo dentro...");
posesionllave = 1;
Sleep (3000);
system ("cls");
break;
default: printf ("Escoje una opcion valida, %s", nombre);
Sleep (3000);
system ("cls");
}
}while ((posesionllave != 1));
printf ("Has abierto la puerta!");
}
y me funciona perfecto